工作中用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 //(注意"{‘name‘: ‘邸宝松‘, ‘age‘: 22}"这种写法只有eval()能处理成功。用$.parseJSON()最外面要用单引号哦^-^) 25 //单条字符串数据 26 var dataStr = ‘{"name": "邸宝松", "age": 22}‘; //单条字符串格式 27 console.log($.parseJSON(dataStr).name); //eval(‘(‘+dataStr+‘)‘),不推荐用eval(),它不够安全,假设json里面有恶意代码,那么就完蛋了, 建议使用jquery的工具$.parseJSON(),当然还有一种js的方法JSON.parse()但它不支持IE6,7,还需要用其他方式兼容。 28 29 //多条字符串数据 30 var datasStr = ‘{"name": "邸宝松", "age": 22}, {"name": "于海欣", "age": 22}‘; //多条字符串格式 31 eachJson($.parseJSON(‘[‘+datasStr+‘]‘)); //eval(‘[‘+dataStr+‘]‘)不推荐,理由同上 32 33 //复杂的对象数据 34 var dataObjs = {"status": 0, "inf": [{"name": "邸宝松", "age": 22}, {"name": "于海欣", "age": 22}]}; 35 console.log(dataObjs.status); 36 eachJson(dataObjs.inf); //其实也就是多了一层对象而已,dataObjs.inf得到的不就是json数组格式了吗。 37 }) 38 </script> 39 </head> 40 <body> 41 42 </body> 43 </html>
时间: 2024-11-25 17:21:11