codecamp

JavaScript解析json格式数据简单示例

本文通过for循环来获取json结点数据,需要的朋友可以参考以下这串json数据用来存储预加载的图片路径:

代码如下:
var imgData = [{
        name: "p1",
        src: "images/p1.jpg"
    }, {
        name: "p2",
        src: "images/p2.jpg"
    }, {
        name: "p3",
        src: "images/p3.jpg"
    }, {
        name: "p4",
        src: "images/p4.jpg"
    }, {
        name: "p5",
        src: "images/p5.jpg"
    }
]

下面这个函数可通过json每行的name来获取该行的路径src,让我们看一下代码:

代码如下:
function getData(name) {
    var picArr = imgData;
    var picSrc;
    for (var i = 0; i < picArr.length; i++) {
        var cur_person = picArr[i];
        if (cur_person.name == name) {
            picSrc = cur_person.src;
        }
    }
    return picSrc;
}

函数执行后将返回该行的src。

代码如下:
var g = getData("p1");
console.log(g);

输出后即可看到结果为:images/p1.jpg

JS对象与JSON格式数据相互转换

JS对象和JSON格式数据的相互转换其实就是两个问题:JS对象转换成为JSON格式数据、JSON格式数据转换成为JS对象。目前的项目数据交互几乎都用JQuery,所以处理流程是:前端页面数据-》JS对象-》jQuery提交-》python处理,另外一种就是倒过来。python肯定不能直接处理JS对象数据,所以要把JS对象转换成为python能处理的一种数据格式(通常是字典dict),同样,python取数据反馈到前端也要把字典数据转换成JS能处理的对象,这个中间转换数据格式通常就是JSON。 

一、JS对象转换成为JSON 

流程:读取前端页面数据,组装成为JS对象,并通过jQuery的$.post()方法传递给python。 

处理:引用一个json2.js文件,调用JSON.stringify()方法。例如:
var data = new Object(); 
var json_data = JSON.stringify(data); 
读取:python这里就很简单了,用dict_data = json.loads(json_data)就OK了 

二、JSON转换成为JS 

流程:python组装一个dict数据并转成JSON格式传递给前端,或者前端通过jQuery的$.getJSON()方法直接读取这个JSON格式的数据 
处理:用jQuery的一个方法$.parseJSON()将JSON格式的数据转成JS对象。例如:
var json_data = $.getJSON(); 
var data = $.parseJSON(json_data); 
读取:JS对像的操作就不必多说了 
这里,python要把字典转换成JSON格式数据,用json.dumps()这个方法就行了 


JavaScript 解析Json字符串的性能比较分析代码
JSON数据遍历之for-in
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }