Json字符串和Json对象的转换和问题总结

数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:

var str = '{ "name": "cxh", "sex": "man" }';

JSON对象:

var obj = { "name": "cxh", "sex": "man" };

注:这样写json对象也可以识别

var obj = { name: "cxh", sex: "man" };

 

一、JSON字符串转换为JSON对象

将后台程序(如php)发送过来的json数据转化为javascript的数组或者对象的方法十分简单,代码如下:

var obj = eval( '(' + str + ')' );

var obj = str.parseJSON(); 

var obj = JSON.parse(str); 

 

二、将JSON对象转化为JSON字符串

var str=obj.toJSONString(); 

var str=JSON.stringify(obj); 

jQuery中也有将字符串转为JSON格式的方法接受一个标准格式的JSON 字符串,并返回解析后的JavaScript(JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串

var str = jQuery.parseJSON( obj);

 

三、PHP中也支持对json的转换

json字符串转换json对象用:json_encode()

json对象转换成json字符串用:json_decode()

注意:

1.ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其方法;你可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象:

2.新版本的JSON 修改了API,将JSON.stringify() 和JSON.parse() 两个方法都注入到了Javascript 的内建对象里面,前者变成了Object.toJSONString(),而后者变成了String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。
3.第二中json对象的写法可以通过转换函数正常转成json字符串,但json字符串中键值不加引号的写法不标准,是无法通过转换函数转换成json对象的。

4.如果json对象中有成员函数,经过转换函数转化字符串时,成员函数会自动被丢掉(因为json也属于对象,一切javascript的对象都支持方法)。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值