0

这是我的问题:在 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()

谢谢 !

4

2 回答 2

1

JSON 是 a string,所以它类似于var jsonObject = '{"name":"someName"}';anobject是一个对象。

于 2013-04-22T13:19:08.630 回答
1

因为它不是 JSON 对象。带引号键的语法{"name":"someName"}不会使其成为 JSON,Javascript 对象文字支持相同的语法。

JSON 可以嵌入到 Javascript 字符串中。喜欢:

var json = '{"key": "value"}';

然后您可以将其解析为 Javascript 数据类型:

var obj = JSON.parse( json );

请注意,这eval可能会导致语法错误,因为 JSON 和 Javascript 的语法最终不兼容。如果evaled.

于 2013-04-22T13:18:31.073 回答