最近有同事问我,传到前台的json无法获得里面某个键值对 。查了一下资料发现,他把json对象和json字符串搞混了。
JSON是一种轻量级的数据交换格式,它用来保存 JS 对象的一种方式,采用键/值对的形式,键/值对中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着写值 。
如:{"aa" : "ss", "bb" : "nn"}
1.JSON对象
JSON对象是javascript的一种数据格式,直接可以用js操作,点出。
var str = { "name": "tom", "sex": "man" };
2.JSON字符串
JSON字符串仅仅只是一个字符串,不截取的话没办法取出其中存储的数据,不能直接使用。
3.将JSON字符串转化为JSON对象
①使用$.parseJSON(str)
例:
// 由JSON字符串转换为JSON对象
var str = '{ "name": "tom" }';
var obj = jQuery.parseJSON(str)
alert( obj.name);
②JSON.parse(str)
例:
// 由JSON字符串转换为JSON对象
var str='{ "name": "tom" }';
var obj = jQuery.parseJSON(str)
alert(obj.name);
③eval('('+str+')')
例:
// 由JSON字符串转换为JSON对象
var str='{ "name": "tom" }';
var obj = eval('(' + str + ')');
alert( obj.name);
4.将JSON对象转化为JSON字符串
使用全局方法JSON.stringify()与toJSONString()
例:
var str = obj.toJSONString(); // 将JSON对象转化为JSON字符
或者
var str = JSON.stringify(obj); // 将JSON对象转化为JSON字符
alert(str);
如果遇到结构复杂的数据,可以通过多次点的方法获得需要的值。