json字符串和对象转换以及json2.js和jquery.json-2.3.js中对于json的方法定义理解

json字符串和对象转换的方式很多的,但是网上却很少人写一些这些方法的不同,来供初学者学习理解。下面是自己的一些理解总结,有不对的地方希望大家能指出。
首先,说一些json的概念。
json 是一种以 key:value 的复合格式存储数据的协议,这样简化了数据传递量,比较 xml 更能减轻客户端负载。
json的两种格式:
json对象:
var jsonobj={"name":"tom","sex":"男","age":"22"};
json字符串:
var json='{"name":"Mike","sex":"女","age":"20"}';

json.js
先引入json.js,引入json.js主要是能解决在一些IE7及以下版本JSON未定义问题,现在已经升级到json2.js了。
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json2.js。这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
json2.js提供了json的序列化和反序列化方法,可以将一个json对象转换成json字符串,也可以将一个json字符串转换成一个json对象。
1. JSON.parse()
方法用于将 json 格式的文本串转化为 JavaScript   json 数据,这个也是所指的序列化方法,将json格式的,转化为json对象。
var  jsonObj = JSON.parse(json);

2.JSON.stringify(jsonobj)
方法用于将 javaScript  json 数据转化为 json 格式的文本串。主要用于向服务端返回数据。这个也就是json对象转json字符串。

以上两个方法都是json2.js提供
json2.js文件的解析:http://blog.csdn.net/u012227177/article/details/25793591 有兴趣的可以看下

还有一种原生的js自带的转化为对象的方法,json中不能有表达式,不然会被执行。
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

json.js包升级之后的转换的方法:
新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。

然后是对js进行封装后的jquery插件中转化的方法是
$.toJSON(json)
对象转json
$.evalJSON(obj)
json转对象
这两个方法一般是写在jquery.json-2.3.js文件中定义的。
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值