PHP 開発では、データ処理を容易にするために、JSON 文字列を配列またはオブジェクトに変換することが必要になることがよくあります。 JSON (JavaScript Object Notation) は、JavaScript に似た構文を使用する軽量のデータ交換形式で、さまざまなプログラミング言語やフレームワークで簡単に解析して生成できます。
PHP では、 json_decode() 関数を使用して、JSON 文字列を PHP 配列またはオブジェクトに変換できます。この関数の構文は次のとおりです。
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
パラメータの説明:
次に、JSON 文字列を PHP 配列またはオブジェクトに変換する方法を示します。
例 1: JSON 文字列を PHP 配列に変換する
$jsonStr = '{"name":"John", "age":30, "city":"New York"}'; $assocArr = json_decode($jsonStr, true); print_r($assocArr);
出力結果:
Array ( [name] => John [age] => 30 [city] => New York )
上の例では、 json_decode() 関数を使用して JSON 文字列を PHP 配列に変換します。連想配列に変換します。 $assoc パラメータが true に設定されている場合は連想配列が返され、それ以外の場合はオブジェクトが返されることに注意してください。
例 2: JSON 文字列を PHP オブジェクトに変換する
$jsonStr = '{"name":"John", "age":30, "city":"New York"}'; $obj = json_decode($jsonStr); echo $obj->name . "\n"; echo $obj->age . "\n"; echo $obj->city . "\n";
出力結果:
John 30 New York
上の例では、 json_decode() 関数を使用して JSON 文字列を PHP オブジェクトに変換します。オブジェクトに変換します。 $assoc パラメータが true に設定されていない場合 (またはパラメータが渡されていない場合)、オブジェクトが返され、それ以外の場合は連想配列が返されることに注意してください。
例 3: 解析エラーのある JSON 文字列の処理
非標準の JSON 文字列が発生したり、JSON 文字列に不正なデータが含まれたりすることがあります。 json_decode() 関数を直接使用すると、例外がスローされるか false が返されます。この場合、try-catch ステートメントを使用して例外を処理するか、2 番目のオプションのパラメーターを使用して解析が成功したかどうかを検出できます。
$jsonStr = '{"name":"John", "age":30, "city":"New York}'; $array = json_decode($jsonStr, true); if ($array === null) { echo '解析JSON失败:' . json_last_error_msg() . "\n"; }
出力結果:
解析JSON失败:Syntax error
上記の例では、JSON 文字列の末尾の中括弧を意図的に削除し、不正な JSON 文字列にしています。 2 番目のオプションのパラメーターを使用すると、解析が成功したかどうかを検出できます。null が返された場合、解析は失敗しました。現時点では、 json_last_error_msg() 関数を使用して、解析失敗の具体的な理由を取得できます。
概要
上記の例を通して、PHP で JSON 文字列を配列またはオブジェクトに変換するのは非常に簡単で、 json_decode() 関数を使用するだけであることがわかります。 JSON 文字列が標準化されていない場合、解析エラーが発生する可能性があることに注意してください。try-catch ステートメントを使用して例外を処理したり、2 番目のオプションのパラメータを使用して解析が成功したかどうかを検出したりできます。
以上がPHPでJSON文字列を配列オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。