【问题标题】:Undefined when parsing data and getting specific objects解析数据和获取特定对象时未定义
【发布时间】:2021-08-17 19:38:16
【问题描述】:

我正在使用传单 1.7.1 并成功地从我的机器的本地内存中加载了 JSON 文件。 我有一个看起来像这样的对象:

covid = {"AFG":{"continent":"Asia","location":"Afghanistan","population":38928341.0,"population_density":54.422,"median_age":18.6},
"KOR":{"continent":"Asia","location":"Afghanistan","population":38928341.0,"population_density":54.422,"median_age":18.6},
"KGZ":{"continent":"Asia","location":"Afghanistan","population":38928341.0,"population_density":54.422,"median_age":18.6},
....} 

我想做的是通过 ISO 国家代码(例如 KOR、KGZ 等)获取国家/地区。 即使在转换为目标文件后,我也无法通过 covid[0] 之类的索引获得,但它不起作用。 我是 JS 新手,无法真正处理数据。

【问题讨论】:

    标签: javascript json parsing


    【解决方案1】:

    注意它不是 JavaScript Array Notation,而是 JavaScript Object Notation。

    问题:covid 不是数组。它是一个对象。这是great read。要解决您的问题,请参考实际名称。

    要在您的项目中使用它,您可以遍历对象并像这样使用它:

    for (let isoCountryName in covid) {
      console.log(`${isoCountryName}`);
    }
    

    这是一个演示:

    var covid = {"AFG":{"continent":"Asia","location":"Afghanistan","population":38928341.0,"population_density":54.422,"median_age":18.6},
    "KOR":{"continent":"Asia","location":"Afghanistan","population":38928341.0,"population_density":54.422,"median_age":18.6},
    "KGZ":{"continent":"Asia","location":"Afghanistan","population":38928341.0,"population_density":54.422,"median_age":18.6}};
    for (let isoCountryName in covid) {
      console.log(`ISO country name: ${isoCountryName}`);
    }

    【讨论】:

    • 我应该为此使用 Ajax 吗?在我的控制台中它什么也没显示
    • 嘿,谢谢。有效。问题是我将解析的数据复制到不是真正对象的新变量中(错误地复制)。我尝试使用原始解析对象,效果很好!
    • @noname AJAX 干什么用的?
    • 我遇到了另一个问题,即 isoCountryName 不再是对象的一部分。我的意思是,如果我在 KOR(即 isoCountryName)中有数据(例如 isoCountryName.data),它会返回欠精细。有什么我可以做的吗?
    • 您可以像这样获取国家下的整个对象:covid.AFGcovid["AFG"]
    猜你喜欢
    • 2019-08-17
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    相关资源
    最近更新 更多