dongsonghen9931 2015-05-06 00:50
浏览 47
已采纳

Json解码并在php中显示

So i've got a list with local weather details, http://api.openweathermap.org/data/2.5/weather?q=Schimmert,nl. And I want to display some of that in formation via php on my site, but can't really find out how JSON is something completely new for me.

And the only thing i managed to do right now is this: http://jeroenonline.biz/JSON/index.php. So this is a simple script:

$getData = file_get_contents( "http://api.openweathermap.org/data/2.5/weather?q=Schimmert,nl");
 
$decode = json_decode($getData);
 
echo "<pre>";
print_r($decode);

</div>
  • 写回答

3条回答 默认 最新

  • douzai8285 2015-05-06 01:10
    关注

    using the link

    http://api.openweathermap.org/data/2.5/weather?q=Schimmert,nl

    without the "." gives me a response

    {
        "message": "Error: Not found city",
        "cod": "404"
    }
    
    <?php
    
    $getData = file_get_contents( "http://api.openweathermap.org/data/2.5/weather?q=Schimmert,nl");
    
    $decode = json_decode($getData);
    
    // accessing it through object
    echo $decode->message;
    echo "<br/>";
    echo $decode->cod;
    
    // accessit via array
    // set true the second parameter or the json_decode($encoded_data, TRUE)
    // to give you array
    $decode = json_decode($getData, TRUE);
    
    echo "<br/>";
    echo $decode['message'];
    echo "<br/>";
    echo $decode['cod'];
    

    so when use the link with the "."

    http://api.openweathermap.org/data/2.5/weather?q=Schimmert,nl.

    gives a response of :

    {
        "coord": {
            "lon": 5.83,
            "lat": 50.91
        },
        "sys": {
            "message": 0.0287,
            "country": "Netherlands",
            "sunrise": 1430884846,
            "sunset": 1430939149
        },
        "weather": [
            {
                "id": 800,
                "main": "Clear",
                "description": "Sky is Clear",
                "icon": "01n"
            }
        ],
        "base": "stations",
        "main": {
            "temp": 284.923,
            "temp_min": 284.923,
            "temp_max": 284.923,
            "pressure": 1012.18,
            "sea_level": 1023.56,
            "grnd_level": 1012.18,
            "humidity": 67
        },
        "wind": {
            "speed": 6.06,
            "deg": 219.002
        },
        "clouds": {
            "all": 0
        },
        "dt": 1430875602,
        "id": 0,
        "name": "Nuth",
        "cod": 200
    }
    

    to show the the result

    // sample to access coord
    echo $decode->coord->lon;
    echo $decode->coord->lat;
    
    // sample to access sys
    echo $decode->sys->message;
    echo $decode->sys->country;
    
    // sample to access weather
    echo $decode->weather[0]->id;
    echo $decode->weather[0]->main;
    echo $decode->weather[0]->description;
    
    // sample to access main
    echo $decode->main->temp;
    echo $decode->main->temp_min;
    
    
    // sample to access wind
    echo $decode->wind->speed;
    
    // sample to access clouds
    echo $decode->clouds->all;
    
    echo $decode->id;
    echo $decode->name;
    echo $decode->cod;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line