所以我是 JSON 的新手,并且一直在尝试一些可能性。我想知道的一件事:有没有办法将“JSON 对象”放入“JSON 对象”中?我想假设这是可以做到的,并且希望它成为可能,因为它可能非常很有用,但对语法的所有尝试都让我失败了。这是标准的示例:
var Person = {
name: 'John',
age: 21,
alive: true,
siblings: [
{
name: 'Andrew',
age: 23,
alive: true
},
{
name: 'Christine',
age: 19,
alive: true
}
]
}
现在,有没有办法做类似下面的事情?
var Andrew = {
name: 'Andrew',
age: 21,
alive: true
}
var Person = {
name: 'John',
age: 21,
alive: true,
siblings: [
{
Andrew
},
{
name: 'Christine',
age: 19,
alive: true
}
]
}
如果是这样,执行此操作的正确方法是什么?还是可以简单地不做?
编辑:我真正的意思是:JSON 能够对内部有对象的对象进行编码吗?
最佳答案
省略大括号:
var Person = {
name: 'John',
age: 21,
alive: true,
siblings: [
Andrew,
{
name: 'Christine',
age: 19,
alive: true
}
]
}
Andrew
是对 JavaScript 对象的引用。花括号表示法 - { foo: 1 }
- 是一个对象文字。要使用变量而不是文字,您可以省略整个文字语法,包括花括号。
请注意,这些都不是 JSON 或“JSON 对象”。 JSON 是一个恰好匹配 JavaScript 对象字面量语法的字符串。一旦一个 JSON 字符串被解析,它就是一个 JavaScript 对象,而不是一个 JSON 对象。
例如,这是有效的 JavaScript,但不是有效的 JSON:
var Person = {
name: "John",
birthDate: new Date(1980, 0, 1),
speak: function(){ return "hello"; },
siblings: [
Andrew,
Christine
];
}
JSON不能实例化new Date()
等对象,JSON不能有成员函数,JSON不能引用外部对象如Andrew
或克里斯汀
。
关于javascript - JSON 对象 .. JSON 对象内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7031465/