首页 > 解决方案 > 避免在多维 JSON 对象中使用数组(和 [0])

问题描述

我将数据存储在 JSON 文件中,需要不同的对象/数组。到目前为止,我正在使用以下结构:

data= [
  {
    "savedRuns": [
      {
        "id": 1,
        "name": "Run 1"
      },
      {
        "id": 2,
        "name": "Run 2"
      },
      {
        "id": 3,
        "name": "Run 3"
      }
    ]
  },
  {
    "groups": [
      {
        "id": 1,
        "name": "g1"
      },
      {
        "id": 2,
        "name": "g2"
      },
      {
        "id": 3,
        "name": "g3"
      }
    ]
  },
{
    "locations": [
      {
        "id": 1,
        "name": "home"
      },
      {
        "id": 2,
        "name": "work"
      },
      {
        "id": 3,
        "name": "school"
      }
    ]
  }
]

我想以一种简单的方式访问文件中的数据,例如:

console.log(data.savedRuns)
console.log(data.locations)

不幸的是,这会返回undefined,访问数据的唯一方法是:

console.log(data[0].savedRuns);
console.log(data[2].locations);

由于我不一定知道物体的位置,我想避免这种情况。如果有办法解决这个问题,或者我的文件采用不同的结构?

链接到JSFiddle

标签: arraysjson

解决方案


感谢 Marks 的回答,我可以获得正确的语法。如果其他人感兴趣,请在下面发布。

data = {
    "savedRuns": [{
            "id": 1,
            "name": "Run 1"
        },
        {
            "id": 2,
            "name": "Run 2"
        },
        {
            "id": 3,
            "name": "Run 3"
        }
    ],
    "groups": [{
            "id": 1,
            "name": "g1"
        },
        {
            "id": 2,
            "name": "g2"
        },
        {
            "id": 3,
            "name": "g3"
        }
    ],
    "locations": [{
            "id": 1,
            "name": "home"
        },
        {
            "id": 2,
            "name": "work"
        },
        {
            "id": 3,
            "name": "school"
        }
    ]
}

推荐阅读