js中Json相关知识

摘要:JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。JSON与JS对象互转要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法, 要实现从JS对象转换为JSON字符串,使用 JSON.stringify()

JSON与JS对象的关系

JSON 是 JS 对象的字符串表示法, 它使用文本表示一个 JS 对象的信息,本质是一个字符串。例如:

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的。
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串。


JSON与JS对象互转

要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:  

var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:  

var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'


兼容问题

JSON方法只支持IE8以上的浏览器使用,若要兼容IE8以下的浏览器,则需要使用JSON2.js框架。 

 

序列化(json对象转string)

var jsonObj = { id: '01', name: 'Tom' };
JSON.stringify(jsonObj);


反序列化(string转json对象)

var jsonString = "{ id: '01', name: 'Tom' }";
JSON.parse(jsonString);


注意

在一般开发中,服务端传递到前端的不一定是一个标准的字符串。  如:

{error:0, id:1, time:152678495612, acc:0, ref:0}

而JSON方法只能转换标准的字符串。  如:

{"error":"0", "id":"1", "time":"152678495612", "acc":"0", "ref":"0"}

所以,对于服务端传递到前端的数据如果不能保证是标准的字符串,那就要通过转换变成标准字符串。 

JavaScript提供了eval()方法:  eval() 函数可计算某个字符串,并执行其中的JavaScript代码。  
想要通过eval()方法转换JSON字符串(标准不标准都行),需要加上一对括号才能完成。 如: 
var str = '{error:0, id:1, time:152678495612, acc:0, ref:0}';
var obj = eval("("+str+")");



本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_5623