从网上找的几种常用的转换方法,测试结果如下:
1、json字符串——>json对象
/* test 1 */
var str = '{"a":1,"b":2}'; var s1 = JSON.parse(str); //OK
console.log(s1); //{ a: 1, b: 2 } var s2 = eval('(' + str + ')'); //OK
console.log(s2); //{ a: 1, b: 2 } var s3 = str.parseJSON(); //TypeError: str.parseJSON is not a function
console.log(s3); /* test 2 */
var str1 = '{a:1,b:2}'; var s1 = JSON.parse(str1); //SyntaxError: Unexpected token a
console.log(s1); var s2 = eval('(' + str1 + ')'); //OK
console.log(s2); //{ a: 1, b: 2 } var s3 = str1.parseJSON(); //TypeError: str.parseJSON is not a function
console.log(s3);
JSON.parse(str)可用,使用时要注意字符串格式
eval('(' + str + ')')可用
2、json对象——>json字符串
var str = { a: 1, b: 2 }; var s1 = str.toJSONString(); // TypeError: str.toJSONString is not a function
console.log(s1); var s2 = JSON.stringify(str); //OK
console.log(typeof s2); //string
console.log(s2); //{"a":1,"b":2}
JSON.stringify(str)可用