Próbowałem zażądać pogody z usługi internetowej dostarczającej dane w formacie JSON
. Mój kod żądania PHP, który się nie powiódł:Parsowanie obiektu JSON w PHP przy użyciu json_decode
$url="http://www.worldweatheronline.com/feed/weather.ashx?q=schruns,austria&format=json&num_of_days=5&key=8f2d1ea151085304102710";
$json = file_get_contents($url);
$data = json_decode($json, TRUE);
echo $data[0]->weather->weatherIconUrl[0]->value;
To niektóre z zwróconych danych. Niektóre szczegóły zostały obcięte dla zwięzłości, ale jest zachowana integralność obiektu:
{ "data":
{ "current_condition":
[ { "cloudcover": "31",
... } ],
"request":
[ { "query": "Schruns, Austria",
"type": "City" } ],
"weather":
[ { "date": "2010-10-27",
"precipMM": "0.0",
"tempMaxC": "3",
"tempMaxF": "38",
"tempMinC": "-13",
"tempMinF": "9",
"weatherCode": "113",
"weatherDesc": [ {"value": "Sunny" } ],
"weatherIconUrl": [ {"value": "http:\/\/www.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png" } ],
"winddir16Point": "N",
"winddirDegree": "356",
"winddirection": "N",
"windspeedKmph": "5",
"windspeedMiles": "3" },
{ "date": "2010-10-28",
... },
... ]
}
}
}
Co próbowaliście? Co nie działa? Czy wiesz o 'json_decode()'? http://www.php.net/json_Decode –
@Ben Lee, preferowane jest, aby SO odpowiadał na te pytania i dlatego zastępuje Google'a jako domyślne źródło pytań dla programistów. [ref meta] (http://meta.stackexchange.com/questions/8724/how-to-deal-with-google-questions) – jball
@jball, byłem po prostu pomocny. Pekka już odpowiedział na to pytanie, a ja kontynuowałem. Nie mam problemu z publikowaniem prostych pytań na temat SO, a oni * powinni * uzyskać na nie odpowiedź. Ale na pytanie tak proste, prawie na pewno uzyskają wynik szybciej, jeśli najpierw szukają - i nie zaszkodzi im to powiadomić. Przeczytałem post w linku, który podasz i zgadzam się z większością tego, ale nie zgadzam się również z tym, że SO powinno * zastępować * google. Sądzę, że powinny być używane w tandemie i myślę, że pomaga OP wiedzieć, kiedy Google jest najbardziej skuteczny. –