Вот текст json:
{ "data": { "current_condition": [{ "cloudcover": "75", "humidity": "63", "observation_time": "03:41 PM", "precipMM": "0.0", "pressure": "1020", "temp_C": "15", "temp_F": "59", "visibility": "16", "weatherCode": "116", "weatherDesc": [{ "value": "Partly Cloudy" }], "weatherIconUrl": [{ "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png" }], "winddir16Point": "SSE", "winddirDegree": "160", "windspeedKmph": "7", "windspeedMiles": "4" }], "request": [{ "query": "Northville, United States Of America", "type": "City" }], "weather": [{ "date": "2013-09-24", "precipMM": "0.0", "tempMaxC": "20", "tempMaxF": "67", "tempMinC": "8", "tempMinF": "47", "weatherCode": "113", "weatherDesc": [{ "value": "Sunny" }], "weatherIconUrl": [{ "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png" }], "winddir16Point": "ESE", "winddirDegree": "111", "winddirection": "ESE", "windspeedKmph": "10", "windspeedMiles": "6" }] }
}
Я пытаюсь эхо «temp_F», и он не работает. Я не могу понять, что я делаю неправильно. Я добираюсь так далеко:
$url = file_get_contents("http://blahblahblahblah"); $arr = json_decode($url,true);
И здесь все терпит неудачу. Я сделал var_dump, поэтому я знаю, что данные есть. Но каждая попытка «эха», которую я пробовал, приводит только к отображению «Массив» на экране. Я пробовал много вариантов:
echo $arr->{'data'}->{'current_condition[0]'}->{'temp_F'};
Может ли кто-нибудь сказать мне, что я делаю неправильно? Благодаря!
json_decode()
с TRUE
поскольку второй параметр дает ассоциативный массив. Но вы в настоящее время пытаетесь получить к нему доступ как объект.
Попробуйте следующее:
echo $arr['data']['current_condition'][0]['temp_F'];
Это не то, как вы обращаетесь к массивам на PHP
$array['index']="value"; echo $array['index1']['index2']
Для вашего примера:
echo $arr['data']['current_condition'][0]['temp_F']
Вы можете использовать json для получения результата json для переменной, а затем использовать переменную информацию для отображения в js.
$.ajax({ 'type': 'GET', 'url': 'abc.com, 'dataType': 'json', success: function (data) { var response = data; // alert(response.data.current_condition) //something like that // for (var i = 0; i < response.length; i++) { } }