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 相关文章推荐
javascript Firefox与IE 替换节点的方法
Feb 24 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
Nov 30 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
Oct 11 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
JavaScript中的replace()方法使用详解
Jun 06 Javascript
浅析node连接数据库(express+mysql)
Nov 30 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
Jul 15 Javascript
基于JS脚本语言的基础语法详解
Jul 22 Javascript
微信小程序中weui用法解析
Oct 21 Javascript
Vue 3.0双向绑定原理的实现方法
Oct 23 Javascript
Vue的data、computed、watch源码浅谈
Apr 04 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
PHP getName()函数讲解
2019/02/03 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python中几个比较常见的名词解释
2015/07/04 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
幼儿园教师辞职信
2014/01/18 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
网管求职信
2014/03/03 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
高一数学教学反思
2016/02/18 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
JS数组方法some、every和find的使用详情
2021/10/05 Javascript