ホームページ >バックエンド開発 >PHPの問題 >JSON文字列を配列PHPに変換する

JSON文字列を配列PHPに変換する

PHPz
PHPzオリジナル
2023-04-23 09:17:15212ブラウズ

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: 解析する必要がある JSON 文字列;
  • $assoc: 返されたオブジェクトを連想配列に変換するかどうか。値が TRUE の場合は、デフォルトでは、連想配列に変換されません。
  • $ Depth: 再帰の深さを設定します。デフォルトは 512 です。メモリのオーバーフローを避けるために、実際の状況に応じてこの値を調整できます。 options: オプションのパラメーター。JSON を解析するためのオプションを指定できます。
  • 例:

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 文字列;
  • $assoc: 値が TRUE の場合、返されたオブジェクトを連想配列に変換するかどうか。デフォルトでは、連想配列に変換されません。
  • $ Depth: 再帰の深さを設定します。デフォルトは 512 です。メモリのオーバーフローを避けるために、実際の状況に応じてこの値を調整できます。 options: オプションのパラメーター。JSON を解析するためのオプションを指定できます。
  • 例:
  • 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。