2016-05-07 21 views
-1

次のJSON結果からこれらのキー "name"、 "adminName1"、 "countryCode"を印刷します。PHPでJSONデータを印刷する方法

{ 
"geonames": [{ 
    "adminCode1": "16", 
    "lng": "74.19774", 
    "distance": "2.95838", 
    "geonameId": 1254611, 
    "toponymName": "Thengode", 
    "countryId": "1269750", 
    "fcl": "P", 
    "population": 0, 
    "countryCode": "IN", 
    "name": "Thengode", 
    "fclName": "city, village,...", 
    "countryName": "India", 
    "fcodeName": "populated place", 
    "adminName1": "Maharashtra", 
    "lat": "20.51997", 
    "fcode": "PPL" 
}] 
} 

正しい方法は?

+0

は 'array_keys()'とキーを取得し、配列にあなたのJSONをデコードし、その後、彼はなぜデコードする必要があり、これらのキーが必要な場合は、 – Rizier123

+0

先生を必要とするものをつかみます?彼はいつもそれらを知っている。 –

答えて

0

json_decodeを使用して値を取得してください。 json_decode関数はオブジェクト配列を返しますので、値にアクセスするには->を使用する必要があります。

jsonの文字列名が$jsonだった場合。

$arr = json_decode($json); 

echo $arr->geonames[0]->name; //Thengode 
echo $arr->geonames[0]->adminName1; //Maharashtra 
echo $arr->geonames[0]->countryCode; //IN 

あなたは、デコードされた配列は以下のようになりJSON:

stdClass Object 
(
    [geonames] => Array 
     (
      [0] => stdClass Object 
       (
        [adminCode1] => 16 
        [lng] => 74.19774 
        [distance] => 2.95838 
        [geonameId] => 1254611 
        [toponymName] => Thengode 
        [countryId] => 1269750 
        [fcl] => P 
        [population] => 0 
        [countryCode] => IN 
        [name] => Thengode 
        [fclName] => city, village,... 
        [countryName] => India 
        [fcodeName] => populated place 
        [adminName1] => Maharashtra 
        [lat] => 20.51997 
        [fcode] => PPL 
       ) 

     ) 

) 
+0

あなたのコードを試した後、私はPHPからこの愛の手紙を得ました: - D PHPの通知:非オブジェクトのプロパティを取得しようとしています –

+0

オンラインチェック:[3v4l.org](https://3v4l.org/efeeW) –

+0

ありがとうFrayneとDan :-) –

-1
$json = '{ 
"geonames": [{ 
    "adminCode1": "16", 
    "lng": "74.19774", 
    "distance": "2.95838", 
    "geonameId": 1254611, 
    "toponymName": "Thengode", 
    "countryId": "1269750", 
    "fcl": "P", 
    "population": 0, 
    "countryCode": "IN", 
    "name": "Thengode", 
    "fclName": "city, village,...", 
    "countryName": "India", 
    "fcodeName": "populated place", 
    "adminName1": "Maharashtra", 
    "lat": "20.51997", 
    "fcode": "PPL" 
}] 
}'; 

$data = json_decode($json); 
echo $data->geonames[0]->name; 
+0

すべての必須フィールドを追加してみてください... –

1

それはそれをチェックアウト、非常に簡単です。

<?php 

//just for error loggin 
error_reporting(1); 
ini_set('display_errors', true); 

//json data 
$json = '{ 
"geonames": [{ 
    "adminCode1": "16", 
    "lng": "74.19774", 
    "distance": "2.95838", 
    "geonameId": 1254611, 
    "toponymName": "Thengode", 
    "countryId": "1269750", 
    "fcl": "P", 
    "population": 0, 
    "countryCode": "IN", 
    "name": "Thengode", 
    "fclName": "city, village,...", 
    "countryName": "India", 
    "fcodeName": "populated place", 
    "adminName1": "Maharashtra", 
    "lat": "20.51997", 
    "fcode": "PPL" 
}]}'; 

//decoded json object 
$jsonDataObject = json_decode($json); 

//parsed variables 
$name = $jsonDataObject->geonames[0]->name; 
$adminName1 = $jsonDataObject->geonames[0]->adminName1; 
$countryCode = $jsonDataObject->geonames[0]->countryCode; 
?> 
関連する問題