JSON和javascript对象之间的差异
我看不出两者之间的区别:JSON和javascript对象之间的差异,javascript,json,Javascript,Json,我看不出两者之间的区别: self.todos = [{ "todo": { "title": "title", "content": "lorem" } }, { "todo": { "title": "title", "content": "lorem" } }]; 及 这两个都可以在我的代码中使用,但只有第一个veryfies JSON()。是否有使用什么的偏好 非常感谢如果您正在编写,您必须
self.todos = [{
"todo": {
"title": "title",
"content": "lorem"
}
}, {
"todo": {
"title": "title",
"content": "lorem"
}
}];
及
这两个都可以在我的代码中使用,但只有第一个veryfies JSON()。是否有使用什么的偏好
非常感谢如果您正在编写,您必须遵守JSON的规则,其中包括属性名称必须用双引号括起来。(字符串必须是双引号,而不是单引号,并且没有未定义的或函数,以及各种其他内容……)
你写的不是JSON,而是JavaScript代码;我可以从self.todos=
部分看出。因此,可以在属性名称上使用无引号、单引号或双引号;这取决于你。有些属性名称需要引号,例如,当属性名称有空格时:
var o = {
"I have a space": 42
};
关键的区别在于JavaScript源代码就是源代码,JSON是用于数据交换的文本符号,它是JavaScript源代码一小部分的简化版本。当您处理JavaScript源代码时,您没有处理JSON,除非您处理的是字符串(例如,包含JSON的字符串,您可以解析或发送到服务器或类似程序)。JSON和JavaScript文本之间的严格区别只是您如何使用它
是表示数据的文本格式。JavaScript文本是JavaScript代码的一部分
您不能在JavaScript代码中使用JSON,因为根据定义,它不再是JSON,而是JavaScript。但是,您可以将JSON作为JavaScript代码使用。您还可以在JavaScript中的字符串中包含JSON
JSON语法是JavaScript文本语法的一个子集,因此您可以接受任何JSON并用作JavaScript,但不能接受任何JavaScript文本并用作JSON
这是JSON的一个示例:
[{
"todo": {
"title": "title",
"content": "lorem"
}
}]
您可以将其用作JavaScript:
var arr = [{
"todo": {
"title": "title",
"content": "lorem"
}
}];
您还可以将JSON作为字符串,并将其解析为JavaScript值:
var json = '[{ "todo": { "title": "title", "content": "lorem" } ]';
var arr = JSON.parse(json);
请注意,解析JSON不会将JSON用作JavaScript,而是读取JSON并创建与之对应的JavaScript值。(在JSON解析可用之前,eval
函数用于解析JSON,这实际上将JSON用作JavaScript。请求仍然使用JSON作为JavaScript,因为它使用脚本标记加载数据。)
JavaScript没有那么严格,并且不需要对象属性名称的分隔符,这些名称可以用作标识符。此外,您还可以在创建JavaScript文本时使用表达式:
var arr = [{
todo: {
title: document.title,
content: "lo" + "rem"
}
}];
如果您使用JavaScript文本并尝试将其用作JSON,则语法是错误的。与他不能在js中使用函数相同:)Thanx对于详细的回复,我想我现在已经了解了很多
var arr = [{
todo: {
title: document.title,
content: "lo" + "rem"
}
}];