# JSON 对象、JSON 字符串 转换

2018-11-29  本文已影响9人  春泥村雨

1. JSON 对象

json 对象,可以通过 javascript 存取属性,如“对象.属性”调用。

var data = {'name':"张三",'age':20};
console.log(data);
console.log(typeof(data));
console.log(data.age);
jsonObj.png

2. JSON 字符串

json字符串是一个用单引号或者双引号引起来的字符串,因为字符串的格式符合json的格式,所以叫做json字符串。

var data = "{'name':'张三','age':20}";
console.log(data);
console.log(typeof(data));
console.log(data.age);
jsonString.png

3. JSON 对象转化为 JSON 字符串

例如:

// 方法1:将 JSON 对象转化为 JSON 字符串
var last = obj.toJSONString();
alert(last);
// 方法2:将 JSON 对象转化为 JSON 字符串
var last = JSON.stringify(obj); 
alert(last);

4. JSON 字符串转换为 JSON 对象

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

// JSON字符串
var str1 = '{ "name": "cxh", "sex": "man" }'; 
// JSON对象
var str2 = { "name": "cxh", "sex": "man" };
// 方法1:JSON 字符串转换为 JSON 对象
var obj = eval('(' + str + ')');
alert(obj.name);
alert(obj.sex);
// 方法2:JSON 字符串转换为 JSON 对象
var obj = str.parseJSON();
alert(obj.name);
alert(obj.sex);
// 方法3:JSON 字符串转换为 JSON 对象
var obj = JSON.parse(str); 
alert(obj.name);
alert(obj.sex);

注:

  1. 如果 obj 本来就是一个 JSON 对象,那么使用 eval() 函数转换后(哪怕是多次转换)还是 JSON 对象,但是使用parseJSON() 函数处理后会抛出异常;
  2. eval() 函数是 js 自带,其他的几个方法都来自 json.js 包;
  3. 新版本的 JSON 修改了 API,将 JSON.stringify()JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()
  4. 如果提示找不到 toJSONString()parseJSON() 方法,则说明 json 包版本太低。

参考链接:

https://blog.csdn.net/u010865136/article/details/78591765
http://www.cnblogs.com/zkwarrior/p/4822470.html

上一篇下一篇

猜你喜欢

热点阅读