php
  • json
  • api
  • 2017-01-30 115 views -3 likes 
    -3

    我正在使用OpenWeather API。我將它保存在$jsonobj,但不知道如何訪問天氣細節。我不知道[]{}如何不同以及它們實際上的含義。來自URL的PHP​​ JSON值

    我的代碼是在這裏:

    <?php 
        $name_of_city = "mathura"; 
        $request = 'http://api.openweathermap.org/data/2.5/weather?APPID=my_key&q='.$name_of_city; 
        $response = file_get_contents($request); 
        $jsonobj = json_decode($response,true); 
        print_r($jsonobj); 
    ?> 
    

    enter image description here

    +4

    [用PHP解析JSON文件(可能的重複http://stackoverflow.com/questions/ 4343596 /解析-json-file-with-php) –

    +1

    請不要吝惜,請避免將文本信息作爲圖像發佈。圖片無法搜索,無法複製和粘貼,並且可訪問性差。並且請** _從不___以JPEG形式發佈文本圖像。這是一個可怕的文字格式。如果您絕對必須發佈文字圖片,請使用PNG。 – Chris

    回答

    0

    當你做

    json_decode($response,true);

    它轉換JSON到數組,所以你可以像下面訪問:

    $name_of_city = "mathura"; 
    $request = 'http://api.openweathermap.org/data/2.5/weather?APPID=my_key&q='.$name_of_city; 
    $response = file_get_contents($request); 
    $jsonobj = json_decode($response,true); 
    foreach($jsonobj['weather'] as $weather){ 
        echo $weather['main'] .":". $weather['description'];//Clear:clear sky 
    } 
    
    0

    []代表數組和{}代表對象,所以在你的榜樣,你有例子包含了一個名爲「天氣」對象的數組對象,訪問是在PHP之後json_decode你可以這麼簡單:

    foreach($jsonobj->weather as $weather){ 
        echo "$weather->main : $weather->description"; 
    } 
    
    +0

    它顯示錯誤注意:嘗試獲取第9行中的C:\ wamp64 \ www \ localite \ index.php中的非對象的屬性我只是在這裏嘗試我的代碼<?php \t $ name_of_city =「mathura」; $ request ='http://api.openweathermap.org/data/2.5/weather?APPID=my_key&q='.$name_of_city; $ response = file_get_contents($ request); $ jsonobj = json_decode($ response,true); \t \t \t的foreach(jsonobj- $>天氣爲$天氣) \t { 回聲 「$耐候>主:$與天氣>描述」; } \t \t > –

    +0

    那是因爲你告訴json_decode爲您提供一個關聯數組,而不是對象,簡單地改變json_decode($響應,真正的)?;到json_decode($ response);或使用$ weather ['main']而不是$ weather-> main – mrbm

    相關問題