如何正确构建嵌套的JSON值?

tim*_*kay 2 javascript json data-structures

我有一组JSON值,有3个级别:

cluster> segment> node

每个群集由段组成,每个段由节点组成.我试图弄清楚如何将其表示为JSON对象,我不确定如何创建结构.

每个节点都包含一个id以及对其segment id和cluster id的引用.我写了一个像这样的测试对象:

 var customers = [
                     {
                    "cluster" : 
                         {"flights":4, "profit":5245, "clv":2364,
                    "segment" :
                        { "flights":2, "profit":2150, "clv":1564,
                            "node" :
                                    { 'xpos': 1, 'ypos': 2 }// closes node
                        }// closes segment 
                         }//closes cluster
                     },
{
                    "cluster" : 
                         {"flights":4, "profit":5245, "clv":2364,
                    "segment" :
                        { "flights":2, "profit":2150, "clv":1564,
                            "node" :
                                    { 'xpos': 1, 'ypos': 2 }// closes node
                        }// closes segment 
                         }//closes cluster
                     }
];
Run Code Online (Sandbox Code Playgroud)

感觉有点片状的部分是段和节点嵌套的方式.我没有收到任何错误,但这是表示此数据的最佳方式吗?

编辑:

感谢您的回答,它肯定指向了正确的方向,使用工具(jsonlint)并更好地理解json中的结构化数据.他们都是正确的答案,告诉我这是一个非常基本的问题.再次感谢.

hvg*_*des 7

你所拥有的json的本质是完全有效的(嵌套在一个对象中的对象的想法),如果在语法上不正确(没有验证你所有的逗号都在正确的位置).

但是,你没有你说什么你想要的,这是一个集群中的片段,和节点的一个段的集合.

改变它

[{
  "cluster": {..,
     "segments": [{    <--- note the array -- you now have a collection
         "name": 'segment1', <- optional, just here to show multiple segments
         "nodes": [{....}] <-- same here
     }, 
     {
         "name": 'segment2',
         "nodes": [{....}]
     }]
  }
}]
Run Code Online (Sandbox Code Playgroud)