Web 開発では、JSON (JavaScript Object Notation) 形式がデータ交換形式として広く使用されています。一般的なサーバーサイド言語として、PHP は JSON 形式の文字列を配列オブジェクトに変換することを当然サポートしています。この記事では、PHPを使用してJSONを配列オブジェクトに変換する方法を紹介します。
PHP の組み込み json_decode 関数を使用すると、JSON 形式の文字列を PHP 配列オブジェクトに変換できます。以下は基本的な使用例です:
<?php $json_str = '{"name": "张三", "age": 20}'; $array_obj = json_decode($json_str); print_r($array_obj); ?>
上記のコードでは、まず JSON 形式の文字列 $json_str を定義します。これには name という名前の文字列属性が含まれており、name は age の整数属性です。次に、 json_decode 関数を使用して文字列を配列オブジェクト $array_obj に変換し、最後に print_r 関数を使用して配列オブジェクトを出力します。スクリプトを実行すると得られる出力は次のとおりです。
stdClass Object ( [name] => 张三 [age] => 20 )
ご覧のとおり、 json_decode 関数は JSON 形式の文字列を配列オブジェクトに正常に変換します。
デフォルトでは、json_decode 関数は、PHP に組み込まれている標準クラスである stdClass オブジェクトを返します。任意のデータ型を表します。 JSON 文字列を連想配列に変換する場合 (つまり、プロパティ名をキー名として使用する場合)、以下に示すように 2 番目のパラメーターを true に設定できます。
<?php $json_str = '{"name": "张三", "age": 20}'; $array_obj = json_decode($json_str, true); print_r($array_obj); ?>
ここで 2 番目のパラメーターが true に設定されている場合、 json_decode 関数は属性名をキー名として使用して連想配列を返します。スクリプトを実行すると得られる出力は次のとおりです。
Array ( [name] => 张三 [age] => 20 )
ご覧のとおり、json_decode 関数は連想配列を返しますが、これは前の出力例とは異なります。
JSON 形式の文字列を配列オブジェクトに変換できない場合、json_decode 関数は null を返します。したがって、コード内で変換失敗のケースを処理する必要があります。以下に例を示します。
<?php $json_str = 'invalid json string'; $array_obj = json_decode($json_str); if(is_null($array_obj)) { echo('JSON转换失败'); } else { print_r($array_obj); } ?>
上記のコードでは、無効な JSON 文字列を変数 $json_str に代入し、json_decode 関数を使用して文字列を変換します。文字列は配列オブジェクトに変換できないため、json_decode 関数は null を返します。そこで、戻り結果がnullかどうかをis_null関数で判定し、nullの場合は「JSON変換に失敗しました」を出力し、そうでない場合は変換後の配列オブジェクトを出力します。このスクリプトを実行すると得られる出力は次のとおりです。
JSON转换失败
結論
PHP では、json_decode 関数を使用して JSON 形式の文字列を配列オブジェクトに変換することは、非常に基本的な操作です。この記事では、json_decode 関数の基本的な使い方と、よくあるヒントや注意事項を紹介します。これらの知識ポイントを学ぶことで、読者は PHP を使用して JSON 形式のデータを処理することにさらに習熟できるようになります。
以上がPHPはjsonを配列オブジェクトに変換しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。