0

我正在尝试从底部显示的 json 文件中检索前两个(“句点”:0 和“句点”:1) icon_url值。

但是,我被困在:

for($j=0; $j<2; $j++) {
$icon[$j] = $parsed_json_forecast->{'forecast'}->{'txt_forecast'}->{'forecastday'}->

如何解析前两个 icon_url 值?

当然不可能:

[...]->{'period'}->{$j}->{'icon_url'};

这是json内容:

{
    "response": {
        "version": "0.1",
        "termsofService": "http://www.wunderground.com/weather/api/d/terms.html",
        "features": {
            "forecast": 1
        }
    },
    "forecast": {
        "txt_forecast": {
            "date": "2:00 AM CEST",
            "forecastday": [{
                "period": 0,
                "icon": "rain",
                "icon_url": "http://icons-ak.wxug.com/i/c/k/rain.gif",
                "title": "Martedì",
                "fcttext": "Pioggia. Massima: 77F. Velocità del vento: 15-25 mph. Direzione del vento: Ovest. Possibilità di precip. 90%.",
                "fcttext_metric": "Pioggia. Massima: 25C. Velocità del vento: 30-40 km/h. Direzione del vento: Ovest. Possibilità di precip. 90%.",
                "pop": "90"
            },
            {
                "period": 1,
                "icon": "partlycloudy",
                "icon_url": "http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
                "title": "Martedì notte",
                "fcttext": "Pioggia. Minima: 63F. Velocità del vento: 5-15 mph. Direzione del vento: Ovest-NE.",
                "fcttext_metric": "Pioggia. Minima: 17C. Velocità del vento: 5-20 km/h. Direzione del vento: Ovest-NE.",
                "pop": "0"
            },
            {
                "period": 2,
                "icon": "clear",
                "icon_url": "http://icons-ak.wxug.com/i/c/k/clear.gif",
                "title": "Mercoledì",
                "fcttext": "Sereno. Massima: 77F. Velocità del vento: 5-10 mph. Direzione del vento: Sud.",
                "fcttext_metric": "Sereno. Massima: 25C. Velocità del vento: 10-15 km/h. Direzione del vento: Sud.",
                "pop": "0"
            },
            {
                "period": 3,
                "icon": "clear",
                "icon_url": "http://icons-ak.wxug.com/i/c/k/clear.gif",
                "title": "Mercoledì notte",
                "fcttext": "Sereno. Minima: 64F. Vento leggero.",
                "fcttext_metric": "Sereno. Minima: 18C. Vento leggero.",
                "pop": "20"
            },      
[....]

提前致谢。

4

3 回答 3

2

当您解析了 JSON 数据(例如使用json_decode)后,您可以使用常规的 php 数组语法访问每个值:

$json["forecast"]["txt_forecast"]["forecastday"][0]["period"].

编辑:数组访问(SPL)是一样的:

$json->forecast->txt_forecast->forecastday[0]->icon_url
于 2013-09-17T10:45:52.207 回答
1

你有 JSON 字符串。现在,要提取所需的值,您必须执行以下操作:

  • 使用解码 JSONjson_decode()
  • 遍历所需的项目
  • 将它们存储在您的数组中

代码:

$parsed_json = json_decode($str);

for($j=0; $j<2; $j++) {
    $icon[$j] = $parsed_json->forecast->txt_forecast->forecastday[$j]->icon_url;
}

输出:

Array
(
    [0] => http://icons-ak.wxug.com/i/c/k/rain.gif
    [1] => http://icons-ak.wxug.com/i/c/k/partlycloudy.gif
)

演示!

于 2013-09-17T10:51:56.137 回答
1

首先,您需要使用解析您的 json 数据,json_decode并且您可以提取数据,

这是示例代码,

$data = json_decode($json);
for($j=0; $j<2; $j++) {
    echo $data->forecast->txt_forecast->forecastday[$j]->icon_url;
}

代码演示:http ://codepad.org/O9WsTs34

于 2013-09-17T10:55:49.410 回答