【问题标题】:Get Children of JSON Elements using Javascript? [duplicate]使用 Javascript 获取 JSON 元素的子元素? [复制]
【发布时间】:2020-12-09 21:51:06
【问题描述】:

如果我有一个看起来像这样的 Json 文件:

{
  "numbers":{
     "firstnum":"one",
     "secondnum":"two",
     "thirdnum":"three",
     "fourthnum":"four",
     "fifthnum":"five"
  }
}

我想使用 JavaScript 获取第三个数字(三)的值。而不是做...

jsonObject.numbers.thirdnum

有没有一种方法可以使用某种子项或索引方法来选择该值?例如像这样的东西......

jsonObject.numbers.children[2]

【问题讨论】:

标签: javascript json


【解决方案1】:

首先您必须将 JSON 转换为 JavaScript:

const object = JSON.parse(string_of_json);

然后您可以使用适当的methods on the Object class 获取对象属性、键或两者的数组。

Object.keys(object.numbers)[2];
Object.values(object.numbers)[2];
Object.entries(object.numbers)[2];

由于无法保证订单,因此这通常没有用,除非您想对返回的每个商品进行处理。

如果您想按位置访问它们,那么您通常应该编写原始 JSON 以使用数组而不是对象。

{
    "numbers": [ "one", "two", "three", "four", "five" ]
}

【讨论】:

    【解决方案2】:

    您可以使用Object.values 将值转换为数组并附加索引。

    obj = {
      "numbers":{
         "firstnum":"one",
         "secondnum":"two",
         "thirdnum":"three",
         "fourthnum":"four",
         "fifthnum":"five"
      }
    }
    
    console.log(Object.values(obj.numbers)[3])

    【讨论】:

      【解决方案3】:

      解析JSON后它变成了Object,所以

      const obj = {
        "numbers": {
           "firstnum":"one",
           "secondnum":"two",
           "thirdnum":"three",
           "fourthnum":"four",
           "fifthnum":"five"
        }
      };
      
      console.log(obj.numbers[Object.keys(obj.numbers)[2]]);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-05
        • 1970-01-01
        • 2022-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多