解析处理常用json数据总结

工作中用ajax接收到接口返回的数据需要进行解析后操作,这里总结一下平时的方法,用的jquery,复制下来的页面把引入的路径改一下即可。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>json</title>
 6     <script src="../js/jquery-1.8.3.min.js"></script>
 7     <script>
 8         $(function(){
 9             //$.each循环公用方法
10             function eachJson(data){
11                 $.each(data, function(i, t){
12                     console.log(t.name);
13                 });
14             };
15 
16             //json数组格式
17             var dataArr = [{"name": "邸宝松", "age": 22}, {"name": "于海欣", "age": 22}]; 
18             eachJson(dataArr); //后台返回json数组格式数据可直循环得到内容
19 
20             //单条对象
21             var dataObj = {"name": "邸宝松", "age": 22}; 
22             console.log(dataObj.name); //对象格式的一条数据通过.直接输出对象内容即可
23 
24             //多条对象
25             var datasObj = {"0": {"name":"邸宝松"}, "1": {"name":"于海欣"}};
26             eachJson(datasObj); 
27 
28             //(注意"{'name': '邸宝松', 'age': 22}"这种写法只有eval()能处理成功。用$.parseJSON()最外面要用单引号哦^-^)
29             //单条字符串数据
30             var dataStr = '{"name": "邸宝松", "age": 22}'; //单条字符串格式   
31             console.log($.parseJSON(dataStr).name); //eval('('+dataStr+')'),不推荐用eval(),它不够安全,假设json里面有恶意代码,那么就完蛋了, 建议使用jquery的工具$.parseJSON(),当然还有一种js的方法JSON.parse()但它不支持IE6,7,还需要用其他方式兼容。
32             
33             //多条字符串数据
34             var datasStr = '{"name": "邸宝松", "age": 22}, {"name": "于海欣", "age": 22}'; //多条字符串格式
35             eachJson($.parseJSON('['+datasStr+']')); //eval('['+dataStr+']')不推荐,理由同上
36             var datasStr2 = '"0": {"name":"邸宝松"}, "1": {"name":"于海欣"}';
37             eachJson($.parseJSON('{'+datasStr2+'}'));
38 
39             //复杂的对象数据
40             var dataObjs = {"status": 0, "inf": [{"name": "邸宝松", "age": 22}, {"name": "于海欣", "age": 22}]}; 
41             console.log(dataObjs.status);
42             eachJson(dataObjs.inf); //其实也就是多了一层对象而已,dataObjs.inf得到的不就是json数组格式了吗。
43         })
44     </script>
45 </head>
46 <body>
47 
48 </body>
49 </html>
原文地址:https://www.cnblogs.com/dibaosong/p/4599905.html