【问题标题】:Parse nested JSON Response Javascript解析嵌套的 JSON 响应 Javascript
【发布时间】:2019-11-14 00:26:25
【问题描述】:

我知道这个主题有几个主题,但我已经浏览了 30 多个主题,但都没有成功。 我设法解析了一个 JSON 响应,所以它看起来像这样:

   {
    "1": {
       "id": "1",
       "name": "Fruit",
       .
       .
       .
       "entities": {
          "1": {
            "id": "1",
            "name": "blue bird",
       .
       .
       .
       "status": "1"
    },
   "2": {

使用此代码

    let json = JSON.parse(body);
    console.log(json); 

现在我想访问“id”、“name”等以及“entities”标签的“id”和“name”。 到目前为止,我已经尝试过:

    console.log(json[0]);
    console.log(json.id);

两者都返回未定义

我也试过了

    console.log(json[0].id);

报错

有什么想法吗?

【问题讨论】:

  • 看起来你的第一个键是json["1"]
  • LOL 容易修复哈哈谢谢!
  • 当然,我会添加作为答案

标签: javascript json parsing


【解决方案1】:

在本例中,您的第一个密钥是 1,因此您可以使用 json[1] 访问它。

const json = {
  "1": {
    "id": "1",  
    "name": "Fruit"
  },
  "2": {
    "id": "2",  
    "name": "Veggies"
  }
};

console.log(json[1]);

【讨论】:

    【解决方案2】:

    在这个json中,可以通过

    到达id
    json.1.id
    

    但我认为首先你的 json 写得不正确,你应该有类似的东西

    { 
    "elements": [
        { "id" : 1, "name" : "fruit" },
        { "id" : 2, "name" : "vegetable" }
    ]
    }
    

    像这样,json.elements 是一个集合/数组,你可以循环、计数或任何其他你无法做的事情,因为你的 json 看起来像是一个不同属性的超重列表(他没有知道json.1和json.2是同一种对象。

    【讨论】:

      【解决方案3】:
      const jsonData = JSON.parse(body);
      
      for (const i in jsonData) {
        for (const j in jsonData[i]) {
          console.log('${i}: ${jsonData[i][j]}');
        }
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-15
        • 2016-09-03
        • 2023-03-20
        • 2014-01-10
        • 2016-01-28
        • 2015-04-23
        • 2021-05-06
        • 2017-05-21
        相关资源
        最近更新 更多