Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON是如何从字符串转换为对象的?_Javascript_Json - Fatal编程技术网

Javascript JSON是如何从字符串转换为对象的?

Javascript JSON是如何从字符串转换为对象的?,javascript,json,Javascript,Json,在幕后,JSON是使用eval创建的吗 如果不是,字符串'{“val1”:1,“val2”:2}如何转换为对象,其中.val1==1和.val2==2?

在幕后,JSON是使用
eval
创建的吗


如果不是,字符串
'{“val1”:1,“val2”:2}
如何转换为对象,其中
.val1==1
.val2==2


但是,该字符串不是JSON,无法使用JSON解析器进行解析。

JSON通常使用JSON解析器转换为JavaScript对象。现在的浏览器都有一个可以通过浏览器访问的浏览器。传统的pollyfill是

但是,该字符串不是JSON,不能用JSON解析器解析。

试试这个

var obj=
JSON.parse(字符串)

或者这是另一种方式

JSONObject jsonObj = new JSONObject("{\"val1\":\"1\",\"val2\":\"2\"}");
试试这个

var obj=
JSON.parse(字符串)

或者这是另一种方式

JSONObject jsonObj = new JSONObject("{\"val1\":\"1\",\"val2\":\"2\"}");

@昆廷——crockford的json代码(源代码:)第471行读作
j=eval(“(“+text+”)”)
JSON.parse,从您链接的文档中可以看到:
parse:function(sJSON){return eval(“+sJSON+”);},
@TravisJ-这两个都是针对没有内置JSON解析器的浏览器的pollyfill。json2.js更安全,它在求值之前测试确保字符串是JSON。@Quentin-我明白了,如果对象是通过解析构造的,我不确定是否可以使用点符号。这是可行的:
varobj={};obj[“val1”]=1;控制台日志(obj.val1)j=eval(“(“+text+”)”)
JSON.parse,从您链接的文档中可以看到:
parse:function(sJSON){return eval(“+sJSON+”);},
@TravisJ-这两个都是针对没有内置JSON解析器的浏览器的pollyfill。json2.js更安全,它在求值之前测试确保字符串是JSON。@Quentin-我明白了,如果对象是通过解析构造的,我不确定是否可以使用点符号。这是可行的:
varobj={};obj[“val1”]=1;控制台日志(obj.val1)