.JSON对象和字符串之间的转换 By taowei

 Js中将字符串转成JSON对象有两种方式:1)使用eval()函数;2)使用Function对象进行返回解析;3)使用JSON全局对象;4)使用JQuery.parseJSON(json)
  如:var str='{"name":"Mike","sex":"女","age":"29"}';
  1)var strToObj = eval("(" + str + ")");转成JSON对象,为什么要加多加一个括号?由于json是以”{}”的方式来开始      
     及结束的,在JS中,它会被当成一个语句块来处理,所以加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强  
     制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来处理。
     alert(eval("{}"); // return undefined
    alert(eval("({})");// return object[Object]
  2)第二种解析方式就是使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success对于返回数据 
     data的解析var data =(new Function("return " + str))();此时的data就是一个json对象了,可以看到其原理就是拼接 
     js代码字符串,然后使用 Function 创建一个匿名方法然后调用之.
  3)使用JSON全局对象,JSON.parse()将字符串转成对象。JSON.stringify()将对象转成JSON格式的字符串。ie8(兼容模式),ie7和ie6没有JSON对象,需要引入json2.js脚本。
    IE10中好像也不行,在Firefox,chrome中可以直接使用这两个方法。
    例:var a={"name":"tom","sex":"男","age":"24"};
       var b='{"name":"Mike","sex":"女","age":"29"}';
       var aToStr=JSON.stringify(a);
       var bToObj=JSON.parse(b);
       alert(typeof(aToStr));  //string
       alert(typeof(bToObj));//object
   4)此外,JQuery中也有将字符串转为JSON格式的方法:jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的JSON对象,需要注意的是,这个方法是 
   1.4版本才有的。
   注意:对于json很多人经常会这样来定义:var jsonObj = '{name:"serafin", age:26}'; 在这里需要注意的是,这样定义在上面几种方法中,只有前面两种方法可以正常使用,
   后面两种方法会出现报错!其实最标准的定义应该是这样的:var jsonObj = '{"name":"serafin", "age":26}'; 也就是说每个key都要用双引号括住!这样的格式在上面几种
   方法都可以正常使用!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值