jQuery解析Json实例详解
本篇章节讲解jQuery解析Json的方法。分享给大家供大家参考,具体如下: 前言 在WEB数据传输过程中,json是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换、JSON数据的解析是关键。 先明确2个概念例如: JSON字符串: 复制代码 代码如下: var str1 = '{ "name": "deyuyi","sex": "man" }'; JSON对象: 复制代码 代码如下: var str2 = { "name": "deluyi","sex": "man" }; 可以简单这样理解: JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样; JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他; 一、JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象: A:eval函数 eval函数可以直接将本质符合或者近似符合JSON格式的字符串转换为JSON对象,使用方式如: eval('(' + str + ')'); //其中str就是满足本标题描述的字符串 //由JSON字符串转换为JSON对象 var str='{ "name": "John" }'; var obj = eval('(' + str + ')'); alert( obj.name); var str2="{ 'name': 'John' }"; var obj2 = eval('(' + str2 + ')'); alert( obj2.name); var str3="{ name: 'John' }"; var obj3 = eval('(' + str3 + ')'); alert( obj3.name); 以上均会输出结果“john”。 Eval方式可以转换以下标准和非标准格式字符串: var str="{ 'name': 'John' }"; var str2='{ "name": "John" }'; var str3="{ name: 'John' }"; 参见本例下载包中:JqueryDemo1.html B:parseJSON函数 另一种将标准字符串转换为JSON对象的函数是parseJSON(),使用方式如jQuery.parseJSON(str)//其中str就是满足本标题描述的字符串 //由JSON字符串转换为JSON对象 var str='{ "name": "John" }'; var obj = jQuery.parseJSON(str) alert("1"+ obj.name); 以上均会输出结果“john”。 此种方式仅支持标准格式:var str='{ "name": "John" }'; 参见本例下载包中:JqueryDemo2.html C:JSON.parse函数 还有一种将标准字符串转换为JSON对象的函数是JSON.parse(),使用方式如JSON.parse(str)//其中str就是满足本标题描述的字符串 var str = '{ "name": "mady","age": "24" }'; var obj = JSON.parse(str); alert(obj.name); 以上均会输出结果“john”。 此种方式仅支持标准格式:var str='{ "name": "John" }'; 参见本例下载包中:JqueryDemo3.html 以上结果一致,均输出姓名,如下图:
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。 D:Other方式 如果忍不住想犯错,十分十分想解析非标准、非正规字符串,如: 复制代码 代码如下: {name:mady,age:23} 或者 复制代码 代码如下: {name:'mady',age:23} 以及其他的你能想到的各种本质正确的非法格式,那么有扩展库可以解决 jquery-json 扩展库 下载地址在这里:http://code.google.com/p/jquery-json/ 这个库用来扩展 jQuery ,对于 JSON 的使用,扩展了两个函数:toJSON和parseJSON toJSON 函数用来将一个普通的 JavaScript 对象序列化为 JSON 对象。 var data=$.toJSON({ x: 2,y: 3 }); var obj = jQuery.parseJSON(data); alert(obj.x); var str = {plugin: 'jquery-json',version: 2.3}; var data2=$.toJSON(str); var obj2 = jQuery.parseJSON(data2); alert(obj2.plugin); 以上代码执行结果如:
参见本例下载包中:JqueryDemo5.html 二、将JSON对象转换为字符串 可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。 复制代码 代码如下: var last=obj.toJSONString(); //将JSON对象转化为JSON字符 或者 var last=JSON.stringify(obj); //将JSON对象转化为JSON字符 alert(last); 三、解析读取JSON 我们通过各种方式将字符串转换为JSON对象后就是解析他了。 复制代码 代码如下: var str2 = { "name": "mady","sex": "man" }; 就可以这样读取: 复制代码 代码如下: alert(str2.name);//和C#一样直接往出点… 弹出” mady”。 我们遇到的JSON很少有这么简单的,比如复杂一点的JSON对象如: 复制代码 代码如下: var str={"GetUserPostByIdResult":{"Age":"33","ID":"2server","Name":"mady"}}; 解析用: alert(str.GetUserPostByIdResult.Name);//一次点不出来,我多点几次 弹出:”mady”。 再再复杂一点的如: 复制代码 代码如下: var data=" { root: [ {'name':'6200','value':'0'},{'name':'6101','value':'xa'},{'name':'6102','value':'beijing'},{'name':'6103','value':'haerbin'}]}"; 如果你想单挑的话,解析用: 复制代码 代码如下: alert(dataObj.root[0].name); 弹出:“6200”。 如果你想群挑的话,解析用: $.each(dataObj.root,function(index,item) { $("#info").append( "<div>" +index+":"+ item.name + "</div>" + "<div>" +index+":"+ item.value + "</div><hr/>"); }); 其中这个“#info”是个DIV的ID。输入结果如下图:
参见本例下载包中:JqueryDemo4.html 注意:本例如果要使用其他转换函数请更改字符串内单引号为双引号,外引号为单引号。 希望本文所述对大家jQuery程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- html – 如何隐藏隐式网格行?
- html – 数据中下载文件的文件名:Application/octet-strea
- 网页的转发与重定向
- html – 如何仅在css中模糊背景图像
- IE图片缓存document.execCommand("BackgroundImageCache&am
- 微信小程序 page 函数的使用详解
- js 将json字符串转换为json对象的方法解析
- html – Adob??e Edge Code和Brackets有什么区别?
- domain-name-system – 使用Registrar与Nameserver Host设置
- html – Outlook VML,模拟CSS重复/定位