PHP には、JSON 文字列をデコードして PHP データ構造に変換する json_decode() 関数が用意されています。結果にアクセスする方法を詳しく見てみましょう:
オブジェクト プロパティ アクセス:
オブジェクト プロパティには $object->property 経由でアクセスできます。例:
$json = '{"type": "donut", "name": "Cake"}'; $yummy = json_decode($json); echo $yummy->type; // "donut"
配列要素へのアクセス:
配列要素は $array[0] を通じてアクセスできます。例:
$json = '["Glazed", "Chocolate with Sprinkles", "Maple"]'; $toppings = json_decode($json); echo $toppings[1]; // "Chocolate with Sprinkles"
ネストされた項目へのアクセス:
ネストされた項目には、$object-> array[0] などの連続した属性とインデックスを通じてアクセスできます。 ->など:
$json = '{"type": "donut", "name": "Cake", "toppings": [{"id": "5002", "type": "Glazed"}]}'; $yummy = json_decode($json); echo $yummy->toppings[0]->id; // "5002"
連想配列に変換:
json_decode() の第 2 パラメータとして true を渡して JSON に変換しますオブジェクトは、キーが文字列である連想配列にデコードされます:
$json = '{"type": "donut", "name": "Cake"}'; $yummy = json_decode($json, true); echo $yummy['type']; // "donut"
連想配列の項目へのアクセス:
は、foreach (array_expression as $key) を介して実行できます。 =>$値)キーと値のトラバース:
$json = '{"foo": "foo value", "bar": "bar value", "baz": "baz value"}'; $assoc = json_decode($json, true); foreach ($assoc as $key => $value) { echo "The value of key '$key' is '$value'" . PHP_EOL; }
出力:
The value of key 'foo' is 'foo value' The value of key 'bar' is 'bar value' The value of key 'baz' is 'baz value'
不明なデータ構造:
データ構造がわからない場合関連ドキュメントを参照するか、print_r() を使用してください。結果を確認します:
print_r(json_decode($json));
json_decode() は null を返します:
これは、JSON が null または無効な場合に発生します。 json_last_error_msg() を使用してエラー メッセージを確認します。
特殊文字の属性名:
特殊文字を含む属性名にアクセスするには、{"@attributes":{"answer":42}} を使用します:
$json = '{"@attributes":{"answer":42}}'; $thing = json_decode($json); echo $thing->{'@attributes'}->answer; //42
以上がPHP を使用して JSON からデータにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。