【发布时间】:2014-09-24 12:09:51
【问题描述】:
我遇到了这个问题:我正在尝试显示来自 Weatherground 的天气信息,我收到了以下回复:
{
"response": {
"version":"0.1",
"termsofService":"http://www.wunderground.com/weather/api/d/terms.html",
"features": {
"forecast": 1
}
}
,
"forecast":{
"txt_forecast": {
"date":"10:52 CEST",
"forecastday": [
{
"period":0,
"icon":"tstorms",
"icon_url":"http://icons.wxug.com/i/c/k/tstorms.gif",
"title":"Venerdì",
"fcttext":"Temporali. Max: 79º F. Venti da S variabili. Prob. pioggia: 80%.",
"fcttext_metric":"Temporali. Max: 26º C. Venti da S variabili. Prob. pioggia: 80%.",
"pop":"80"
}
,
{
"period":1,
"icon":"nt_rain",
"icon_url":"http://icons.wxug.com/i/c/k/nt_rain.gif",
"title":"Venerdì notte",
"fcttext":"Pioggia e tuoni. Min: 62º F. Venti da ENE variabili. Prob. pioggia: 60%.",
"fcttext_metric":"Pioggia e tuoni. Min: 17º C. Venti da ENE variabili. Prob. pioggia: 60%.",
"pop":"60"
}
,
{
"period":2,
"icon":"tstorms",
"icon_url":"http://icons.wxug.com/i/c/k/tstorms.gif",
"title":"Sabato",
"fcttext":"Temporali. Max: 75º F. Venti da SSE variabili. Prob. pioggia: 90%.",
"fcttext_metric":"Temporali. Max: 24º C. Venti da SSE variabili. Prob. pioggia: 90%.",
"pop":"90"
}
使用此代码:
<?php
$json_string = file_get_contents("http://api.wunderground.com/api/***/forecast/lang:IT/q/SW/Lugano.json");
$parsed_json = json_decode($json_string);
$date = $parsed_json->{'forecast'}->{'txt_forecast'}->{'date'};
$named0 = $parsed_json->{'forecast'}->{'txt_forecast'}->{'forecastday'}->{'title'};
$txtd0 = $parsed_json->{'forecast'}->{'txt_forecast'}->{'forecastday'}->{'fcttext'};
echo "$named0, $date: $txtd0";
?>
(我想得到类似:星期五,10:52CEST:下雨天......)
但问题是我无法显示预测,因为第二个时期 (period:1) 的值与第一个时期的名称相同。
我试图将链接放在http://jsonformatter.curiousconcept.com/ 中,但它只是向我展示了这一点: ...
"forecastday":[
{
"period":0,
"icon":"tstorms",
"icon_url":"http://icons.wxug.com/i/c/k/tstorms.gif",
"title":"Venerdì",
"fcttext":"Temporali. Max: 79º F. Venti da S variabili. Prob. pioggia: 80%.",
"fcttext_metric":"Temporali. Max: 26º C. Venti da S variabili. Prob. pioggia: 80%.",
"pop":"80"
},
{ },
{ },
{ },
{ },
{ },
{ },
{ }
所以问题是,我怎样才能像这样分开不同的时期:
period0: $named0, $date: $txtd0
period1: $named1, $date: $txtd1
....
因为在代码中我看不到响应的第一个或第二个“标题”
$named0 = $parsed_json->{'forecast'}->{'txt_forecast'}->{'forecastday'}->{'title'};
$named0 必须获取第一个 'title' 的值
谢谢你,对不起我的英语和我的编码技能,我还是个新手
【问题讨论】:
标签: php json parsing weather-api