jquery解析JSON数据示例代码


Posted in Javascript onMarch 17, 2014

这里可以找到json.js的代码,后面还需要formutil.js的代码及MD5.js

用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。
这里首先给出JSON字符串集,字符串集如下:
代码如下:

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:'商洛市'} 
] 
}";

这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。
1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:
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语句即可,其他不变。
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:
$.getJSON("http://www.phpzixue.cn/",{param:"gaoyusi"},function(data){ 
//此处返回的data已经是json对象 
//以下其他操作同第一种情况 
$.each(data.root,function(idx,item){ 
if(idx==0){ 
return true;//同countinue,返回false同break 
} 
alert("name:"+item.name+",value:"+item.value); 
}); 
});

这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。
Javascript 相关文章推荐
js 处理URL实用技巧
Nov 23 Javascript
写js时遇到的一些小问题
Dec 06 Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 Javascript
javascript判断chrome浏览器的方法
Mar 26 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
Feb 22 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 Javascript
浅谈ECMAScript 中的Array类型
Jun 10 Javascript
vue+elementUI实现图片上传功能
Aug 20 Javascript
javascript设计模式之迭代器模式
Jan 30 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 #Javascript
javascript内置对象arguments详解
Mar 16 #Javascript
javascript跨浏览器的属性判断方法
Mar 16 #Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
Mar 16 #Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 #Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 #Javascript
JavaScript表单通过正则表达式验证电话号码
Mar 14 #Javascript
You might like
php中explode的负数limit用法分析
2015/02/27 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
js玩一玩WSH吧
2007/02/23 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python中的二维列表实例详解
2018/06/19 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
python selenium 弹出框处理的实现
2019/02/26 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
教育学专业实习生的自我鉴定
2013/11/26 职场文书
安全教育实施方案
2014/03/02 职场文书
文秘应届生求职信
2014/07/05 职场文书
远程培训的心得体会
2014/09/01 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
2016年公司新年寄语
2015/08/17 职场文书
PHP命令行与定时任务
2021/04/01 PHP
Python入门之基础语法详解
2021/05/11 Python
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js