javascript 字符串转换json对象

json 是 javascript object notation的缩写。javascript对象标记语言,所以可以通过对象获取属性的方式来取得层级关系。

1.eval()方法转换json对象 

以前经常可以看到这种转换方式,不推荐,是一种不安全的转换方式。eval()方法会动态执行其中字符串(可能是js脚本),这样容易出现系统的安全问题和泄漏用户信息。

var str = '{"name":"三国演义","category":"文学"}';
var data = eval("("+ str +")");
console.log(data.name);

提问:为什么使用eval()将json字符串转换为对象要多加一个小括号?

回答:

迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。小括号,也就是分组符号(分组符内只允许表达式)。

2.JSON.parse()方法转换json对象  

现在主流的转换方式,推荐!

var str = '{"name":"三国演义","category":"文学"}';
var data = JSON.parse(str);
console.log(data.name);

提问:那如果把json对象再转换成字符串呢?

var str = '{"name":"三国演义","category":"文学"}';
var data = JSON.parse(str);
var dataSring = JSON.stringify(data);
console.log(dataSring);//会得到字符串
原文地址:https://www.cnblogs.com/sanerandm/p/8303986.html