javascript - JSON 对象 .. JSON 对象内部

标签 javascript json object

所以我是 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/

相关文章:

java - 如何将动态值传递给 JSON 字符串

python - Python 中访问对象列表的异常循环行为

python - 属性错误: 'guiCreate' object has no attribute 'master' - Why can't i access functions from another class?

php - 使用 jQuery 发布屏幕宽度

javascript - 将对象输入到函数中,无需新类或对象

php - 更正 PHP 代码以检查变量是否存在

java - 使用 Gson 的 GET 请求(java)

r - 访问 R 中对象中的列表(轮廓函数)

javascript - 从组件中的 useState 多次调用状态更新程序会导致多次重新渲染

javascript - 使用 YUI 将 tr 附加到 tbody