Как получить конкретные данные из результата json/jsonp?

У меня есть json-ответ от API погоды. Я хочу получить конкретные данные свойства, вот ответ:

{
 "response": {
 "version": "0.1",
 "termsofService": "http://www.wunderground.com/weather/api/d/terms.html",
 "features": {
 "forecast": 1
 }
 },
 "forecast": {
 "txt_forecast": {
 "date": "2:00 PM PDT",
 "forecastday": [
 {
 "period": 0,
 "icon": "partlycloudy",
 "icon_url": "http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
 "title": "Tuesday",
 "fcttext": "Partly cloudy in the morning, then clear. High of 68F. Breezy. Winds from the West at 10 to 25 mph.",
 "fcttext_metric": "Partly cloudy in the morning, then clear. High of 20C. Windy. Winds from the West at 20 to 35 km/h.",
 "pop": "0"
 },
 {
 "period": 1,
 "icon": "partlycloudy",
 "icon_url": "http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
 "title": "Tuesday Night",
 "fcttext": "Mostly cloudy. Fog overnight. Low of 50F. Winds from the WSW at 5 to 15 mph.",
 "fcttext_metric": "Mostly cloudy. Fog overnight. Low of 10C. Breezy. Winds from the WSW at 10 to 20 km/h.",
 "pop": "0"
 }......

Я хочу получить прогноз: txt_forecast: fcttext Я хочу получить "fcttext" из приведенного выше ответа. Я могу получить дату, используя приведенный ниже код.

var date = parsed_json['forecast']['txt_forecast']['date'];

пожалуйста, помогите мне, как я могу получить "fcttext" из ответа.

4 ответа

txt_forecast.forecastday - это массив. Каждый элемент массива - это объект, содержащий экземпляр fcttext. Если вы хотите получить первый элемент, вы можете сделать следующее:

parsed_json['forecast']['txt_forecast']['forecastday'][0]['fcctext']


Попробуй это:

for(var forcast_arr_index in parsed_json['forecast']['txt_forecast']['forcastday'])
 console.log(parsed_json['forecast']['txt_forecast']['forcastday'][forcast_arr_index]['fcctest']);

Будьте осторожны с кавычками.


Вероятно, вы захотите сделать что-то подобное, увидев, что fcttext находится внутри прогноза, а прогноздня - это Array...

$.each(parsed_json.forecast.txt_forecast.forecastday, function(key, object){
 console.log(object.fcttext);
 alert(object.fcttext);
});

Это будет проходить через объект прогноза и скажет вам значение fcttext.

Используется $,ajax; из-за тега jquery вы можете использовать Array.forEach или for.

связи

http://api.jquery.com/each - jQuery.each Документация

https://developer.mozilla.org - Документация Array.forEach

https://developer.mozilla.org - for документации


попробуй что-нибудь вроде этого

var obj = jQuery.parseJSON(json);
 var forecastday_arr = obj.forecast.txt_forecast.forecastday;
 jQuery(forecastday_arr).each(function(i){
 var forecastday_obj = forecastday_arr[i];
 console.log(forecastday_obj);
 });

licensed under cc by-sa 3.0 with attribution.