代码之家  ›  专栏  ›  技术社区  ›  G B

使用javascript动态加载数组上的嵌套对象

  •  0
  • G B  · 技术社区  · 8 年前

    我有一个 json 这种格式的数据,我希望在一个对象数组中加载数据,而不需要对对象键进行硬编码。我想获取每个类别中的项目和标签,每个类别都有对象键的名称。目前我得到的数据是
    ...myData.labels.name; 或 ...items.name; 这是无效的,因为 根据类别的不同,名称也会发生变化。

      [
      [
        {
          "key": "mykey",
          "category": "myCategoryKey",
          "category_label": "myCategoryLabel",
          "field": "filter",
          "items": {
            "name": [
              "item1",
              "item2"
            ]
          },
          "labels": {
            "name": [
              "Item1",
              "Item2"
            ]
          }
        },
        {
          "key": "mykey2",
          "category": "myCategoryKey2",
          "category_label": "myCategoryLabel2",
          "field": "filter",
          "items": {
            "name2": [
              "item1",
              "item2"
            ]
          },
          "labels": {
            "name3": [
              "Item1",
              "Item2"
            ]
          }
        }
      ]
    ]
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Atul Sharma    8 年前

    使用 Object.keys() 如果值动态更改,则获取项的键。

    然后使用这些键获取相应的值。

    var data = {
                "key": "mykey2",
                "category": "myCategoryKey2",
                "category_label": "myCategoryLabel2",
                "field": "filter",
                "items": {
                    "name2": [
                        "item1",
                        "item2"
                    ]
                },
                "labels": {
                    "name3": [
                        "Item1",
                        "Item2"
                    ]
     } }
     
     var labelsPresent = Object.keys(data.labels);
     
     console.log(labelsPresent);
     
     var labelValues= labelsPresent[0];
     console.log(data.labels[labelValues]);