difference beetween JSON and javascript object
我看不出之间的区别:
1 2 3 4 5 6 7 8 9 10 11 | self.todos = [{ "todo": { "title":"title", "content":"lorem" } }, { "todo": { "title":"title", "content":"lorem" } }]; |
和
1 2 3 4 5 6 7 8 9 10 11 | self.todos = [{ todo: { title:"title", content:"lorem" } }, { todo: { title:"title", content:"lorem" } }]; |
两者都在我的代码中工作,但只有第一个非常好的JSON(在线JOSON非常有效)。 是否有偏好使用什么。
非常感谢
JSON和JavaScript文字之间的严格区别仅在于您如何使用它。
JSON是一种表示数据的文本格式。 JavaScript文字是JavaScript代码的一部分。
你不能在JavaScript代码中使用JSON,因为它根据定义不再是JSON,它是JavaScript。但是,您可以使用JSON并将其用作JavaScript代码。您还可以在JavaScript中的字符串中包含JSON。
JSON语法是JavaScript文字语法的子集,因此您可以使用任何JSON并将其用作JavaScript,但您不能使用任何JavaScript文字并将其用作JSON。
这是JSON的一个例子:
1 2 3 4 5 6 | [{ "todo": { "title":"title", "content":"lorem" } }] |
您可以将其用作JavaScript:
1 2 3 4 5 6 | var arr = [{ "todo": { "title":"title", "content":"lorem" } }]; |
您还可以将JSON作为字符串并将其解析为JavaScript值:
1 2 | var json = '[{"todo": {"title":"title","content":"lorem" } ]'; var arr = JSON.parse(json); |
请注意,解析JSON不会将JSON用作JavaScript,它会读取JSON并创建与其对应的JavaScript值。 (在JSON解析可用之前,
JavaScript不太严格,并且不需要可用作标识符的对象属性名称的分隔符。此外,您可以在创建JavaScript文字时使用表达式:
1 2 3 4 5 6 | var arr = [{ todo: { title: document.title, content:"lo" +"rem" } }]; |
如果您使用该JavaScript文字并尝试使用JSON,则语法错误。
如果您正在编写JSON,则必须遵守JSON规则,其中包括属性名称必须使用双引号的事实。 (并且该字符串必须是双引号,而不是单引号,并且没有
你写的清楚的不是JSON,而是它的JavaScript代码;我可以从
1 2 3 | var o = { "I have a space": 42 }; |
关键区别在于JavaScript源代码是源代码,而JSON是数据交换的文本符号,它是JavaScript源代码的一小部分的简化版本。当你处理JavaScript源代码时,你不处理JSON,除非你正在处理字符串(例如,包含JSON的字符串,你可能会解析或发送到服务器或类似的)。