PHP を使用して Web アプリケーションを開発する場合、多くの場合、文字列 JSON を配列またはオブジェクト配列に変換する必要があります。 JSON は Web 開発で一般的に使用されるデータ形式の 1 つであるため、JSON を配列またはオブジェクト配列に変換することは非常に一般的な操作です。
この記事では、PHPで文字列JSONを配列またはオブジェクト配列に変換する方法を紹介します。
PHP には、JSON 文字列を配列に変換できる組み込み関数 json_decode() があります。オブジェクトの配列。
この関数には 2 つのパラメータがあります:
(1) String JSON: 変換する必要がある JSON 文字列。
(2) Boolean assoc: デフォルト値は false で、オブジェクト配列が生成されることを意味します。このパラメータを true に設定すると、連想配列が生成されます。
これは簡単な例です:
<?php // JSON字符串 $jsonStr = '{"name":"Tom", "age":30, "city":"New York"}'; // 将JSON字符串转换为关联数组 $arr = json_decode($jsonStr, true); // 输出数组内容 print_r($arr); ?>
出力結果:
Array ( [name] => Tom [age] => 30 [city] => New York )
連想配列は必要ありませんが、オブジェクトの配列が必要です。assoc パラメーターを false に設定するか、渡さないことができます。
これは例です:
<?php // JSON字符串 $jsonStr = '[{"name":"Tom", "age":30}, {"name":"Jerry", "age":35}]'; // 将JSON字符串转换为对象数组 $objArr = json_decode($jsonStr); // 输出对象数组内容 foreach($objArr as $obj) { echo "Name: " . $obj->name . ", Age: " . $obj->age . "\n"; } ?>
出力結果:
Name: Tom, Age: 30 Name: Jerry, Age: 35
場合によっては、JSON 文字列にネストされたオブジェクトと配列が含まれる場合があり、再帰関数を使用してそれらをオブジェクト配列に簡単に変換できます。
これは簡単な例です:
<?php // JSON字符串 $jsonStr = '{"name":"Tom", "age":30, "address":{"city":"New York", "country":"USA"}, "friends":["Jerry", "Kate"]}'; // 将JSON字符串转换为对象数组 $obj = json_decode($jsonStr); // 递归地将嵌套的对象和数组转换为对象数组 function object_to_array($obj) { if(is_object($obj)) $obj = (array)$obj; if(is_array($obj)) { foreach($obj as $key=>$val) { $obj[$key] = object_to_array($val); } } return $obj; } // 输出对象数组内容 $objArr = object_to_array($obj); print_r($objArr); ?>
出力結果:
Array ( [name] => Tom [age] => 30 [address] => Array ( [city] => New York [country] => USA ) [friends] => Array ( [0] => Jerry [1] => Kate ) )
概要
この記事では、PHP で文字を変換する方法を紹介しました 文字列の変換JSON を配列またはオブジェクト配列に変換します。 json_decode() 関数を使用して JSON を配列に変換する場合でも、JSON をオブジェクトの配列に変換する場合でも、非常に簡単かつ楽に行うことができます。 JSON 文字列にネストされたオブジェクトと配列が含まれている場合は、再帰関数を使用してオブジェクト配列に変換することもできます。 JSON データを使用する必要がある場合、これらのテクニックはプログラミング作業を簡素化し、生産性を向上させるのに役立ちます。
以上がPHP文字列jsonから配列オブジェクト配列への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。