【问题标题】:How to list array names in json [closed]如何在json中列出数组名称[关闭]
【发布时间】:2015-03-16 11:45:04
【问题描述】:

我在 json 的数组中有数组。无论如何我可以在其中列出数组的名称。如果存在一个包含 5 个其他数组的数组,是否有办法列出所有名称 5 个数组,而不是它们的内容,而是它们的名称。有没有办法在javascript中做到这一点

例如

嘿,我明白了你的答案,但我只是想澄清一下。我有json如下,

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

] 
}

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

【问题讨论】:

  • 数组本身是匿名的——只是有序的元素集合。那么,您指的是什么名字?它们是否包含在对象中作为特定键的值?您能否通过数据样本和您期望从中获得的输出来澄清您的问题?
  • 你问如何打印他们的key?你试过用谷歌(它是世界上最大的搜索引擎)搜索“javascript 对象列表键”吗?
  • @h2ooooooo 感谢您的回复,非常感谢。
  • @Jonathan 我已经更新了答案。对不起,我以前不清楚。我希望我现在。我正在尝试的可能吗?

标签: javascript json


【解决方案1】:

您误解了数据类型的用法。数组是一种匿名类型,你不要命名它的元素。如果您想知道数组的名称,则必须将此结构更改为字典(映射)。

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

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

arrayMapping['array1']

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

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

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

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

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

【讨论】:

  • 嘿,我明白了你的答案,但我只是想澄清一下。我有json如下,{“array1”:[{“array2”:[{“array3”:[]}],“array21:[{}]}]},我想知道首先我列出所有数组在array1中,然后是array2中的所有数组,然后是array3中的所有数组。就像我列出array1中的所有数组一样,我应该得到结果array2和array2等等。这可能吗?根据你的答案,数组不能被命名,因此它的不可能,只是澄清一下
  • 我更新了我的帖子。希望它能回答你的问题。如果您感到困惑,请阅读有关地图/字典和数组数据结构的更多信息。了解它们将对您有所帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
相关资源
最近更新 更多