如何在json中列出数组名称

时间:2015-01-18 08:01:24

标签: javascript json

我在json中的数组中有数组。无论如何,我可以列出一个数组的名称。如果存在一个包含5个其他数组的数组,则有一种方法可以列出所有名称5数组,而不是它们的内容,而是它们的名称。有没有办法在javascript中执行此操作

例如

嘿,我得到了你的答案的主旨,但我只想澄清一下。我有以下json,

{
"array1":[ { 
      "array2":[ { 
              "array3":[ ] } ],
      "array21:[ {
 }]
 } 

] 
}

我想知道,首先我列出array1中的所有数组,然后列出array2中的所有数组,然后列出array3中的所有数组。就像我列出array1中的所有数组一样,我应该得到结果array2和array2,依此类推。这可能吗?根据你的回答,数组无法命名,因此不可能只是澄清

1 个答案:

答案 0 :(得分:0)

您误解了数据类型的使用。 Array是一种匿名类型,您没有命名它的元素。如果您想知道数组的名称,则必须将此结构更改为字典(map)。

var arrayMapping = {
'arr1': [...],
'arr2': [...]
};

但通过这样做,请记住每个数组都有唯一的名称。然后,您可以像这样访问您的数组:

arrayMapping['array1']

但是如果由于某种原因您无法更改此数据结构,则需要创建一个帮助对象,您可以将名称映射到arrayIndex。但这会增加代码复杂性,并且需要包含在带有getter的某种util类中。

如果您的数组包含5个数组,并且您希望按名称访问它们,那么您需要这种结构:

var arrayMapping = {
'arr1': {
   'arr1_1': [],
   'arr1_2': [],
   'arr1_3': [],
   'arr1_4': [],
   'arr1_5': [],
    },
...
};

如果你想要列出arr1 map中所有数组的所有anmes,那么你应该这样做:

 Object.keys(arrayMapping['arr1'])// it will list arr1_1,...,arr1_5