JSON.parse()和JSON.stringify() 和 json.js+ jquery 操作笔记

前端之家收集整理的这篇文章主要介绍了JSON.parse()和JSON.stringify() 和 json.js+ jquery 操作笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

parse用于从一个字符串中解析出json对象,如

var str = '{"name":"huangxiaojian","age":"23"}'


结果:

JSON.parse(str)
Object
age: "23"
name: "huangxiaojian"
__proto__: Object

注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。


stringify()用于从一个对象解析出字符串,如

var a = {a:1,b:2}
结果:
JSON.stringify(a)
"{"a":1,"b":2}"


json.js下载地址:

http://www.json.org/js.html

我初学JSON,按照官方说明,在json2.js中有parse和stringify两个方法,parse用于从一个字符串中解析出json对象。还是举个例子说明:

var str = "{'name':'x','age':23}";
JSON.parse(str.name);

原来认为这肯定能够正确执行的,但是无论怎样写这个对象string,都抛出异常。后来发现原来是"和'导致的错误。如果改为:

var str='{"name":"xskow","age":23}';
JSON.parse(str.name);

就OK了!

还有就是我们写对象的时候一般可以{name:'xskow'},即属性名可以不用双引号括起来,但如果使用JSON.parse的话,每个属性都必须用双引号括起来,否则也会抛出异常。

复杂JSon数据的操作方法

var str='{ "studies":[{ "UserName": "李彦宏","Sex": "男","Age":25,"XueHao":"00001","BanJi":"一班" },{ "UserName": "马云","Age":31,"XueHao":"00002","BanJi":"二班" }]}' JSON.parse(str.studies[0].userName);

 服务端向客户端返回了一串JSON格式的数据。在有些时候,因为某些特殊的原因我们不知道原始的key值,因此我们此时无法象正常一样通过key值,来获取value值。这时我们必须循环读取JSON对象数据。废话少说,来看例子。

  服务端后台返回到客户端的JSON格式字符串:var str = '[{"uname":"王强","day":"2010/06/17"},{"uname":"王海云","day":"2010/06/11"}]';

  我们把它转换成JSON对象:var jsonList=eval("("+str+")");这时候如果以用断点跟踪查看这个jsonList对象,其实你会发现,他的长度为2,即jsonList.length=2。它的每一项都是一个单独的JSON对象。请看下图: 

  这时候假设我们不知道"uname"和"day"这两个key值,我们开始对jsonList执行循环操作

  for(var i=0;i<jsonList.length;i++){
      var key in jsonList[i]){
           alert("key:"+key+",value:"+jsonList[i][key]); 
         } 
  }

  这样我们就可以轻松的获取我所需要的key值和value值了

猜你在找的Json相关文章