在js中,有两种方法将JSON字符串解析为JSON数据格式。

1。一种是使用eval_r()函数。

2。使用函数对象进行返回解析。

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

JSON字符串:
var str1 ={名称:CXH

JSON对象:
VaR str2 = {名字:CXH

第一解:
var dataobj = eval_r((+数据+)); / /转换为JSON
为什么要在这里添加eval((+数据+)); / /

原因是:评价问题本身。因为JSON是开始和结束的方式{ },JS,它可能是一个语句块的处理,必须将其转化为一个表达式。

插入语的目的是迫使eval函数变换的表达在圆括号中的(表达)为对象,在处理Javascript代码的执行,而不是它的语句。例如,例如对象的文字{ },如果不加外括号,然后评估将确定的括号开始代码Javascript块和结束标记,然后{ }将被视为空语句的执行。所以下面的两个执行结果是不同的:
警报(eval_r({ }); / /返回未定义
警报(eval_r((文本)); / /返回对象{物}

对于这种写作方式,你可以在JS中随处可见。

例如:((函数)){(});做闭包操作等等。

var str1 ={名称:CXH
VaR数据= eval_r((+ str1 +)); / /转换为JSON(新= / /数据
警报(数据。名称); / /显示CXH

要注意eval_r方式尤为重要()在模式1是动态执行字符串,这可能是JS脚本,很容易导致系统的安全问题,所以你可以使用一些第三方的客户端脚本库,逃避eval_r(),如JSON在Javascript中,提供一个脚本库不超过3k。

第二解:
解决这个问题的第二种方法是使用函数对象完成。它的典型应用是在ajax的ajax方法下对返回到数据的成功数据进行分析。
var str1 ={名称:CXH
var =()函数(
警报(数据。名称); / /显示CXH