2017-06-16 124 views
0

我想創建一個JSON對象。它代表了許多觀測的有效載荷,所有觀測均來自具有單個串行的設備。每個觀察都有一個ID(下面例子中的8和17),一個維度和一個值。我想出了這個:如何嵌套JSON數組?

{ 
 
\t "serial": "10002000", 
 
\t "observations": [ 
 
\t \t "8": { 
 
\t \t \t "d": "dimension1", 
 
\t \t \t "v": "somevalue", 
 
\t \t }, 
 
\t \t "17": { 
 
\t \t \t "d": "dimension2", 
 
\t \t \t "v": "anothervalue", 
 
\t \t }, 
 
\t ], 
 
}

我想這說明了什麼,我以後 - 但它不是語法正確的JSON。我錯過了什麼?

+1

記住:最後一個項目後面沒有逗號。 –

+0

*我錯過了什麼?*你缺少的是對任何JS介紹或教程都可以獲得的數組的基本理解。數組是被稱爲元素的值列表,僅此而已。 – 2017-06-16 16:52:44

+0

謝謝亞歷克斯! Torazaburo - 令人震驚的是,我確實讀了一個JS介紹來到這裏 - 我只是不是很好;) –

回答

1

JSON數組不能將鍵值對作爲單個元素 - 鍵和值都是單獨的元素。當您說8: {...}時,您試圖將整個鍵 - 值對作爲一個元素放入數組中。例如,您可以將observations更改爲對象,例如將8作爲屬性,或者可以將數組的每個元素都設置爲新對象,其中8是該對象內的屬性。

例:

{ 
    "serial": "10002000", 
    "observations": { 
     "8": { 
      "d": "dimension1", 
      "v": "somevalue" 
     }, 
     "17": { 
      "d": "dimension2", 
      "v": "anothervalue" 
     } 
    } 
} 

{ 
    "serial": "10002000", 
    "observations": [ 
     { 
      "8": { 
       "d": "dimension1", 
       "v": "somevalue" 
      } 
     }, 
     { 
      "17": //and so on 
+1

這,並且還記得在最後一個項目之後不要輸入逗號。 –

+0

什麼是「JSON數組」,是否與常規數組不同? – 2017-06-16 16:49:54

+0

你已經忽略了'觀察的明顯結構:[{id,d,v},...]'。 – 2017-06-16 16:54:43