2017-06-16 194 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