查询JavaScript对象与JSOn对象的区别

时间:2013-04-22 13:16:50

标签: javascript json

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

谢谢!

2 个答案:

答案 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是对象。