这是我的问题: 在java脚本中: 我们有一个对象:
var someObject={"name":"somename"};
现在我们想得到名字,我们会做
alert(someObject.name); //it will print somename Right?
我从一个发送JSON对象的源
获得相同的对象someJSONObject={"name":"someName"};
现在在我的javascript代码中,没有解析这个someJSONObject,我可以将名称命名为
alert(someJSONObject.name);
如果是这样,为什么我们需要通过解析它来将JSON对象转换为javaScript对象,何时我们可以将它用作对象而无需解析或使用eval()
?
谢谢!
答案 0 :(得分:1)
因为它不是JSON对象。带引号键的语法{"name":"someName"}
不会使其成为JSON,Javascript对象文字支持相同的语法。
JSON可以嵌入Javascript字符串中。像:
var json = '{"key": "value"}';
然后您可以将其解析为Javascript数据类型:
var obj = JSON.parse( json );
请注意,eval
可能会导致语法错误,因为JSON和Javascript的语法最终不兼容。如果evaled
。
答案 1 :(得分:1)
JSON是string
,因此它类似var jsonObject = '{"name":"someName"}';
和object
是对象。