一直记不住 JSON.parse()的用法,在此记录下来,加强记忆。
先看解释:
在js中使用JSON.parse(text[, reviver]),用于将一个JSON数据,转换成JavaScript对象。
text:必需, 一个有效的 JSON 字符串。
reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
先看不带调用函数的
代码如下:
1 <script type="text/javascript"> 2 //people的值是数组类型,数组中的值是对象类型。 people是一个对象 3 var jsonStr = '{ "people" : [' + 4 '{ "name":"张三" , "sex":"男" },' + 5 '{ "name":"李四" , "sex":"男" },' + 6 '{ "name":"莉莉" , "sex":"女" } ]}'; 7 8 //将jsonStr转换为对象 9 var jsObj = JSON.parse(jsonStr); 10 //打印出来看看 11 document.write(JSON.stringify(jsObj) + "<br/>"); 12 //调用 13 document.write(jsObj.people[0].name + "<br/>" + jsObj.people[2].name); 14 </script>
输出内容如下:
这里是带调用函数
代码如下:
1 <script type="text/javascript"> 2 //people的值是数组类型,数组中的值是对象类型。 people是一个对象 3 var jsonStr = '{"num1":"10", "num2":"20", "num3":"30"}'; 4 5 //将jsonStr转换为对象,将每个对象的成员调用函数,并返回值 6 var jsObj = JSON.parse(jsonStr,function(k,v){ 7 if(k === ''){ 8 return v; 9 } 10 else{ 11 return v*2; 12 } 13 }); 14 //全部打印出来看看 15 document.write(JSON.stringify(jsObj) + "<br/>"); 16 //调用单个成员 17 document.write(jsObj.num1); 18 </script>