有这样一个JSON字符串:
[
{ id:1, pId:0, name:"随意勾选 父 1", open:true},
{ id:11, pId:1, name:"随意勾选 子 1", checked:true},
{ id:12, pId:1, name:"没有 checkbox 1", nocheck:true, open:true}
];
这是一个表示数组的JSON字符串吧?但是格式我有些看不懂,JSON不应该是Key/Value对吗,像上面这个字符串感觉不像键值对啊~~
[]里面的三个子JSON字符串可以看成是value,但是他们的key是什么呢?正规的写法是不是应该是这样:
{ "test": [
    { id:1, pId:0, name:"随意勾选 父 1", open:true},
    { id:11, pId:1, name:"随意勾选 子 1", checked:true},
    { id:12, pId:1, name:"没有 checkbox 1", nocheck:true, open:true}
]} ????

解决方案 »

  1.   

    其实错误的理解不在于key/value组成,因为json允许数组
    只是你的"test"知道用引号。后面的所有key都没有。这个不是标准合格的json格式。
      

  2.   

    json确实有数组。何必纠结这些东西呢。。
      

  3.   

    嗯我知道JSON可以有数组,但第一种那种数组的写法是不是不太正规(如果不算没加引号)?因为它没有键值啊,对吗?
      

  4.   

    两者都对,只是访问形式上
    第一种 \
    var obj=[
     { id:1, pId:0, name:"随意勾选 父 1", open:true},
     { id:11, pId:1, name:"随意勾选 子 1", checked:true},
     { id:12, pId:1, name:"没有 checkbox 1", nocheck:true, open:true}
    ];
    访问 
    alert(obj.id);var obj= { "test": [
       { id:1, pId:0, name:"随意勾选 父 1", open:true},
       { id:11, pId:1, name:"随意勾选 子 1", checked:true},
       { id:12, pId:1, name:"没有 checkbox 1", nocheck:true, open:true}
    ]}  
    alert(obj.test.id);
      

  5.   

    这有什么好纠结的,json是人规定的东西,
      

  6.   

    我之前也有类似的误解其实简单理解呢json可以是两种东西一个就是 key/value 的{
    key1:value1,
    key2:value2}另一个就是 数组{
    value1,value2
    }需要强调的是 这两种类型的中value 的格式可以是五花八门啊,,,我当初没搞清楚就是不了解value,其中的value就是object
      

  7.   

    json是通用数据交换格式,允许有数组的表现结构。离开js环境另当别论,但是在js里[]就解释为数组!
    里面的单项可以是json对象,在概念上就应该区分开,对着[]喊json让数组情何以堪啊?。