簡體   English   中英

JSON 對象.. 在 JSON 對象內

[英]JSON objects .. inside JSON objects

所以我是 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 object 的引用 花括號符號 - { foo: 1 } - 是 object文字 要使用變量而不是文字,您可以省略整個文字語法,包括花括號。

請注意,這些都不是 JSON 或“JSON 對象”。 JSON 是恰好匹配 JavaScript Object 文字語法的字符串。 Once a JSON string has been parsed, it is a JavaScript object, not a JSON object.

例如,這是有效的 JavaScript,但無效的 JSON:

var Person = {
    name: "John",
    birthDate: new Date(1980, 0, 1),
    speak: function(){ return "hello"; },
    siblings: [
        Andrew,
        Christine
    ];
}

JSON cannot instantiate objects such as new Date() , JSON cannot have a function as a member, and JSON cannot reference external objects such as Andrew or Christine .

你很近。 Andrew已經是 object,因此您不需要將其包裝在 object 文字語法中(如果您這樣做,您需要一個屬性名稱作為值伴隨它)。 這個怎么樣:

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 對象 - 我必須使用 arrays 嗎?

var Andrew = {
    name:  'Andrew', 
    age:   21, 
    alive: true
}

var Person = {
    name:  'John', 
    age:   21, 
    alive: true,
    siblings: [
        Andrew,
        {
            name:  'Christine',
            age:   19,
            alive: true
        }
    ]    
}

去掉括號,因為它已經是 object。

Person.siblings[0].name // Andrew

您不再需要括號。 您可以將Andrew作為數組值之一。

siblings: [
        Andrew,
    {
        name:  'Christine',
        age:   19,
        alive: true
    }
] 

在純 JSON 中,您可以將對象嵌入到對象中,但不能引用對象。

如果您在 JavaScript 中使用 JSON,這是可行的,盡管您不需要它周圍的括號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM