JSON (JavaScript Object Notation) は、データを表すために JavaScript オブジェクトを通じて実装される軽量のデータ交換形式です。 Web 開発における JavaScript 言語の応用が広く普及したことにより、JSON は出現後すぐに広く使用されるようになりました。
PHP 開発では、JSON データの処理が頻繁に関係します。 PHP を使用してインターフェースから JSON データを取得する場合、その後の使用を容易にするために、JSON 文字列を PHP のオブジェクト配列に変換する必要があります。さて、この記事では、PHP で JSON 文字列をオブジェクトの配列に変換する方法を説明します。
PHP 開発では、API インターフェイスを呼び出して JSON 形式でデータを取得し、それを PHP が読み取れるデータ構造に変換する必要があることがよくあります。このプロセスでは、JSON データが不可欠です。したがって、JSON データを PHP のオブジェクト配列に変換することは、PHP 開発者が頻繁に対処する必要がある問題になります。次に、PHP の組み込み関数を使用してこの機能を実現する方法を紹介します。
PHP は、JSON 文字列を PHP のデータ構造に変換する json_decode() 関数を提供します。 json_decode() 関数は、JSON 形式の文字列を PHP 変数にデコードするために使用されます。この関数には 2 つのパラメータが含まれています: 最初のパラメータは変換される JSON 形式の文字列で、2 番目のパラメータは JSON データを連想配列に変換するかどうかを指定するために使用されるブール値です。デフォルトは false です。
json_decode() 関数を使用して JSON 文字列を PHP オブジェクト配列に変換するサンプル コードは次のとおりです。
//JSON字符串 $json_string = '{"name":"Tom", "age":25, "country":"China"}'; //使用json_decode()函数将JSON字符串转换为PHP对象数组 $obj_array = json_decode($json_string); //输出PHP数组 var_dump($obj_array);
上記のコードを実行すると、次の結果が出力されます。
object(stdClass)#1 (3) { ["name"]=> string(3) "Tom" ["age"]=> int(25) ["country"]=> string(5) "China" }
//JSON字符串 $json_string = '{"name":"Tom", "age":25, "address": {"city":"Shanghai", "street":"Nanjing Rd."}}'; //自定义转换函数 function jsonToMultiArray($json_string) { $arr = json_decode($json_string, true); //将json字符串转换成关联数组 $arr = array_map(function($a) { //将子元素也转换成数组 if(is_array($a)) { return jsonToMultiArray(json_encode($a)); //递归调用自身处理多层嵌套结构 } else { return $a; } }, $arr); return $arr; } //使用自定义函数将JSON字符串转换为PHP多维数组 $multi_array = jsonToMultiArray($json_string); //输出PHP数组 var_dump($multi_array);
以上がPHPでJSON文字列をオブジェクト配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。