之间有什么不同
var json = [{
'id':1,
'name':'John'
}]
和
var json = {
'id':1,
'name':'John'
}
我的理解是,在代码中,一个json是一个数组,这意味着我们可以拥有多个包含id和name属性的对象。但对于第二个,它是一个对象。是吗?
这个怎么样
var json = ['id':1,'name':'John']
与代码一比较?
答案 0 :(得分:3)
第一个是本地javascript对象的array
。
第二个是javascript对象。
最后一个没有效,会抛出错误。这在语法上是错误的。
在javascript数组或对象上使用JSON.stringify()
,使其成为有效的JSON。
答案 1 :(得分:2)
您对第一代和第二代的理解是正确的。 但是,关于代码一和二的json语法是错误的。因为每个json字段必须使用双引号,而不是单引号。 所以代码一和代码二必须这样写:
[
{
"id": 1,
"name": "John"
}
]
和
{
"id": 1,
"name": "John"
}
现在代码三的语法错误!如果您想表示数组,则必须为var json = []; json['id']=1; json['name']='John';
或对象var json={'id':1,'name':John'}
答案 2 :(得分:1)
JSON是一种格式,即将Javascript对象编码为字符序列的方法。
一旦有了一系列字符,您就可以将它存储在磁盘上或通过网络发送,然后重建字符序列中描述的对象。
您无法对JSON中的每个可能的Javascript值进行编码,只能
此外,数据结构必须是树。 (如果它有循环,则会出现错误,并且未检测到共享子树,并且在从JSON重建时会重复。)
此外,JSON不支持数组中存在其他字段(在Javascript中可能存在,因为数组是对象)。对于JSON,您有一个数组或一个对象。
前两个示例中的值可以转换为JSON,但格式规范中还有其他要求。 (例如,对象字段名称必须加双引号。)
您的上一个示例不是有效的JSON字符串。
当您看到“JSON对象”或“JSON值”时,您必须将其读作“以JSON编码的对象”。 JSON是一种格式,或多或少像XML。