博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery解析json
阅读量:4323 次
发布时间:2019-06-06

本文共 2252 字,大约阅读时间需要 7 分钟。

Js代码  
  1. var data="    
  2. {    
  3. root:    
  4. [    
  5. {name:'1',value:'0'},    
  6. {name:'6101',value:'西安市'},    
  7. {name:'6102',value:'铜川市'},    
  8. {name:'6103',value:'宝鸡市'},    
  9. {name:'6104',value:'咸阳市'},    
  10. {name:'6105',value:'渭南市'},    
  11. {name:'6106',value:'延安市'},    
  12. {name:'6107',value:'汉中市'},    
  13. {name:'6108',value:'榆林市'},    
  14. {name:'6109',value:'安康市'},    
  15. {name:'6110',value:'商洛市'}    
  16. ]    
  17. }";   
var data=" { root: [ {name:'1',value:'0'}, {name:'6101',value:'西安市'}, {name:'6102',value:'铜川市'}, {name:'6103',value:'宝鸡市'}, {name:'6104',value:'咸阳市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'} ] }";

对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:

Js代码  
  1. var dataObj=eval("("+data+")");//转换为json对象    
  2. alert(dataObj.root.length);//输出root的子对象数量    
  3. $.each(dataObj.root,fucntion(idx,item){    
  4. if(idx==0){    
  5. return true;    
  6. }    
  7.   
  8. //输出每个root子对象的名称和值    
  9. alert("name:"+item.name+",value:"+item.value);    
  10. })   
var dataObj=eval("("+data+")");//转换为json对象 alert(dataObj.root.length);//输出root的子对象数量 $.each(dataObj.root,fucntion(idx,item){ if(idx==0){ return true; } //输出每个root子对象的名称和值 alert("name:"+item.name+",value:"+item.value); })

注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。
JSON文件:

Js代码  
  1. [    
  2. {    
  3. "name":"xujun",    
  4. "sex":"男",    
  5. "home":"nanjing"    
  6. },    
  7. {    
  8. "name":"jack",    
  9. "sex":"男",    
  10. "home":"beijing"    
  11. }    
  12. ]   
[ { "name":"xujun", "sex":"男", "home":"nanjing" }, { "name":"jack", "sex":"男", "home":"beijing" } ]

Html文件:

Html代码  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">    
  2. <html>    
  3. <head>    
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    
  5. <title>Insert title here</title>    
  6. <script src="../jquery.js"></script>    
  7. <script>    
  8. $(document).ready(function(){    
  9. $.getJSON('jsonData.json?id',function(data){    
  10. //遍历JSON中的每个entry    
  11.   
  12. $.each(data,function(entryIndex,entry){    
  13. var html='<tr>';    
  14. html+='<td>'+entry['name']+'</td>';    
  15. html+='<td>'+entry['sex']+'</td>';    
  16. html+='<td>'+entry['home']+'</td>';    
  17. html+='</tr>';    
  18. $('#title').after(html);    
  19.   
  20. });    
  21. });    
  22. });    
  23. </script>    
  24. </head>    
  25. <body>    
  26. <table>    
  27. <tr id="title">    
  28. <th>姓名</th>    
  29. <th>性别</th>    
  30. <th>家庭地址</th>    
  31. </tr>    
  32. </table>    
  33. </body>    
  34. </html>   

转载于:https://www.cnblogs.com/lijinchang/archive/2011/10/14/2211128.html

你可能感兴趣的文章
ajax跨域,携带cookie
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏( dp )
查看>>
洛谷 CF937A Olympiad
查看>>
Codeforces Round #445 C. Petya and Catacombs【思维/题意】
查看>>
用MATLAB同时作多幅图
查看>>
python中map的排序以及取出map中取最大最小值
查看>>
ROR 第一章 从零到部署--第一个程序
查看>>
<form>标签
查看>>
vue去掉地址栏# 方法
查看>>
Lambda03 方法引用、类型判断、变量引用
查看>>
was集群下基于接口分布式架构和开发经验谈
查看>>
MySQL学习——MySQL数据库概述与基础
查看>>
ES索引模板
查看>>
HDU2112 HDU Today 最短路+字符串哈希
查看>>
JPanel重绘
查看>>
图片放大器——wpf
查看>>
SCALA STEP BY STEP
查看>>
cocos2d-x学习笔记
查看>>
MySql中的变量定义
查看>>
Ruby数组的操作
查看>>