PHP では、JSON 形式の文字列を配列に変換するのは非常に簡単なプロセスです。この目的に使用できる PHP 組み込み関数は、json_decode() と json_decode_object() の 2 つです。
1. json_decode() 関数を使用する
json_decode() 関数は、JSON 形式の文字列を PHP 配列に変換する一般的な方法です。
構文:
<code>mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )</code>
その中に:
JSON 形式の文字列を配列に変換します:
<code><?php $json_string = '{"name": "Tom", "age": 30, "sex": "male"}'; $decoded_json = json_decode($json_string); print_r($decoded_json); ?></code>
出力:
<code>stdClass Object ( [name] => Tom [age] => 30 [sex] => male )</code>
上記のコードでは、まず JSON 形式の文字列を定義し、次に json_decode() 関数を呼び出して文字をデコードします。文字列を PHP 配列 $decoded_json に格納し、結果を出力します。
返された結果を連想配列に変換したい場合は、$assoc パラメーターを TRUE に設定する必要があります:
<code><?php $json_string = '{"name": "Tom", "age": 30, "sex": "male"}'; $decoded_json = json_decode($json_string, true); print_r($decoded_json); ?></code>
出力:
<code>Array ( [name] => Tom [age] => 30 [sex] => male )</code>
上記の出力からわかるように、配列 $decoded_json は最後の出力オブジェクト。この時点で $assoc が TRUE に設定され、連想配列に変換されるためです。 $assoc が設定されていない場合、デフォルトでは配列ではなくオブジェクトが返されます。
2. json_decode_object() 関数を使用する
json_decode() 関数に加えて、PHP には、JSON 形式の文字列を PHP 配列に変換する別の方法である json_decode_object() 関数も用意されています。
構文:
<code>object json_decode_object ( string $json_string [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )</code>
その中に:
$json_string: 解析する必要がある JSON 文字列;<code><?php $json_string = '{"name": "Tom", "age": 30, "sex": "male"}'; $decoded_json = json_decode_object($json_string); print_r($decoded_json); ?></code>
出力:
<code>stdClass Object ( [name] => Tom [age] => 30 [sex] => male )</code>
上記のコードでは、 json_decode_object() 関数を使用して、JSON 文字列を PHP 配列 $decoded_json に変換します。 $assoc パラメータを設定していないため、デフォルトでは配列ではなくオブジェクトを返します。
概要
PHP では、 json_decode() 関数と json_decode_object() 関数を使用して、JSON 形式の文字列を PHP 配列に変換できます。どちらの機能にも利点があり、どちらを選択するかは特定のニーズによって異なります。結果をオブジェクトにしたい場合は json_decode_object() を使用し、結果を配列にしたい場合は json_decode() を使用します。使用中は、メモリ オーバーフローを避けるために、実際の状況に応じて $ Depth パラメータと $options パラメータの値を調整する必要もあります。
以上がJSON文字列を配列PHPに変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。