【问题标题】:JavaScript: Parsing a JSON object with multiple levelsJavaScript:解析具有多个级别的 JSON 对象
【发布时间】:2020-04-22 23:56:18
【问题描述】:

我有一个格式如下的 JSON 文件:

{
  "Afghanistan": [
    {
      "date": "2020-1-22",
      "confirmed": 0,
      "deaths": 0,
      "recovered": 0
    },
    {
      "date": "2020-1-23",
      "confirmed": 0,
      "deaths": 0,
      "recovered": 0
    },
    ...
  ],
  "Albania": [
    {
      "date": "2020-1-22",
      "confirmed": 0,
      "deaths": 0,
      "recovered": 0
    },
    {
      "date": "2020-1-23",
      "confirmed": 0,
      "deaths": 0,
      "recovered": 0
    },
    ...
  ],
  ...
}

我的目标是以某种方式提取数据,以便获得每个国家/地区的日期、确认、死亡和康复情况。我遇到的问题是为所有国家找到一种方法,而不仅仅是一个。

例如,如果我写data.Afghanistan[0].confirmed; //data is a variable i stored the JSON object in 行来获取阿富汗的信息,我需要为阿尔巴尼亚以及所有其他国家分别写相同的行。

我知道有一种方法可以更有效地为所有县执行此操作,但我似乎找不到。有人可以帮我吗?任何帮助,将不胜感激。谢谢

【问题讨论】:

  • 你想如何访问数据或者实际上你想如何使用它?
  • 对于给定的date,您想要所有国家/地区的confirmeddeathsrecovered 的合并总数吗?

标签: javascript json parsing


【解决方案1】:

使用Object.keys()。例如,Object.keys(yourJSONObject) 将返回一个键数组,即["Afghanistan", "Albania"]。您可以使用它来迭代 JSON 中的每个键/值。

【讨论】:

    【解决方案2】:

    我认为这可行:

    const countries = Object.keys(data);
    const confirmedDeathsByCountry = countries.map(country => data[country][0].confirmed);
    

    【讨论】:

      【解决方案3】:

      您可以像这样在 JSON 文件中遍历每个国家/地区内的数组:

      for (var key in data) { 
          //key is the country ie. "Afghanistan"
          var records = data[key]; //array of records
          for (var index in records) {
              var record = records[index]; //object with the properties
              var date = record.date;
              var confirmed = record.confirmed;
              var deaths = record.deaths;
              var recovered = record.recovered;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-21
        • 2023-03-07
        • 2012-09-09
        相关资源
        最近更新 更多