使用json从特定键检索每个值

时间:2019-11-14 13:49:36

标签: javascript json

我想知道是否有一种方法可以从.json中获取所有“ -temp”值

{
  "weather":{
    "notes":{
      "cities":[
        {
          "-id":"scranton",
          "-temp":"17"
        },
        {
          "-id":"paris",
          "-temp":"16"
        },
        {
          "-id":"new york",
          "-temp":"18"
        }
      ]
    }
  }
}

我如何尝试使用JavaScript来获取它,但是那没用,我得到了undefined

data.weather.notes.cities['-temp']

如何获取“ -temp”的每个值?

5 个答案:

答案 0 :(得分:4)

您可以使用map

const temps = data.weather.notes.cities.map(city => city["-temp"]);

console.log(temps); // ["17", "16", "18"]

当然,您始终可以始终单独访问它们:

const { cities } = data.weather.notes;

console.log(cities[0]["-temp"]); // "17"

或全部循环:

for (let city of cities) {
  console.log("temperature in %s is %s°", 
    city["-id"], city["-temp"]
  );
}

答案 1 :(得分:0)

以下是将城市的临时温度插入新数组的示例:

const newArray= new Array();

data.weather.notes.cities
  .forEach(city => newArray.push(city['-temp'])) 

答案 2 :(得分:0)

您可以遍历所有城市并收集“ -temp”键。

data.weather.notes.cities.forEach(function(element) {
 for (var em in element) {
    if (em == "-temp")
    {
      console.log(element[em])
    }
 }
});

@ ZER0答案可能是最好的。

答案 3 :(得分:0)

var data = {
  "weather":{
    "notes":{
      "cities":[
        {
          "-id":"scranton",
          "-temp":"17"
        },
        {
          "-id":"paris",
          "-temp":"16"
        },
        {
          "-id":"new york",
          "-temp":"18"
        }
      ]
    }
  }
};
  
for(var i in data.weather.notes.cities) {
    let city = data.weather.notes.cities[i];
    console.log(city["-temp"]); //You_ can get it here
}

答案 4 :(得分:0)

您不能像使用jquery选择器一样使用JSON。就您而言,您需要绘制一系列城市的地图。

const object = {
  "weather":{
    "notes":{
      "cities":[
        {
          "-id":"scranton",
          "-temp":"17"
        },
        {
          "-id":"paris",
          "-temp":"16"
        },
        {
          "-id":"new york",
          "-temp":"18"
        }
      ]
    }
  }
};

const tempList = object.weather.notes.cities.map(city => city['-temp']);

//result: ["17", "16", "18"]

有关更多信息,请参见map文档。