ホームページ >バックエンド開発 >PHPの問題 >php jsonを配列関数に変換

php jsonを配列関数に変換

王林
王林オリジナル
2023-05-05 21:25:06512ブラウズ

PHP では、処理のために JSON を配列に変換する必要があることがよくあります。 JSON 形式は比較的簡潔で理解しやすいため、フロントエンドとバックエンドの間でデータを送信するための一般的な形式となっているため、PHP には JSON を配列に変換するのに役立つ関数がいくつかあります。

この記事では、PHP で一般的に使用される配列関数に対する JSON をいくつか紹介します。

  1. json_decode()

json_decode() 関数は、JSON 文字列を PHP 配列またはオブジェクトに変換するために使用される PHP の基本関数です。構文は次のとおりです:

mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )

ここで:

  • $json: 変換する必要がある JSON 文字列。
  • $assoc: このパラメータが TRUE の場合は配列が返され、FALSE の場合は Object オブジェクトが返されます。
  • $ Depth: 再帰呼び出しの深さを制御するために使用される最大の深さを指定します。デフォルト値は 512 です。
  • $オプション: JSON エンコード オプション。変換後の形式を指定できます。

サンプルコード:

$json_str = '{"name":"Tom","age":20,"hobby":["reading","writing"]}';
$arr = json_decode($json_str, TRUE);
print_r($arr);

出力結果:

Array
(
    [name] => Tom
    [age] => 20
    [hobby] => Array
        (
            [0] => reading
            [1] => writing
        )
)

json_decode() 関数により、JSON 文字列を配列に変換することができました。

  1. json_decode() は JSON_THROW_ON_ERROR と組み合わせて使用​​されます

PHP 7.3 以降では、JSON_THROW_ON_ERROR オプションを使用して、変換時に json_decode() 関数をスローさせることができます。異常なエラーが発生します。サンプル コードは次のとおりです。

$json_str = '{"name":"Tom","age":20,"hobby:["reading","writing"]}';
try {
    $arr = json_decode($json_str, TRUE, 512, JSON_THROW_ON_ERROR);
    print_r($arr);
} catch (JsonException $e) {
    echo 'JSON错误:' . $e->getMessage();
}

出力結果:

JSON错误:Syntax error

この例では、JSON 文字列の形式が正しくないため、 json_decode() 関数が例外をスローし、エラーを表示しました。メッセージ。

  1. json_last_error_msg()

json_decode() 関数を使用して JSON 文字列を変換すると、解析エラーが発生することがあります。このとき、 json_last_error_msg( ) 関数を使用してエラー情報を取得します。サンプル コードは次のとおりです。

$json_str = '{"name":"Tom","age":20,"hobby":["reading","writing"';
$arr = json_decode($json_str, TRUE);
if (json_last_error() === JSON_ERROR_NONE) {
    print_r($arr);
} else {
    echo 'JSON错误:' . json_last_error_msg();
}

出力結果:

JSON错误:Syntax error

この例では、json_last_error_msg() は、文字列形式が正しくないためにエラー情報を返しました。

  1. json_encode()

PHP では、PHP 配列を JSON 形式の文字列に変換することもできます。これには、 json_encode() 関数を使用する必要があります。構文は次のとおりです。

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

ここで:

  • $value: JSON 形式に変換する必要がある PHP 変数。
  • $オプション: オプション。 JSON エンコード オプション。
  • $深さ: オプション。最大の深さを指定します。デフォルト値は 512 です。

サンプルコードは以下のとおりです:

$arr = array('name' => 'Tom', 'age' => 20, 'hobby' => array('reading', 'writing'));
$json_str = json_encode($arr, JSON_UNESCAPED_UNICODE);
echo $json_str;

出力結果:

{"name":"Tom","age":20,"hobby":["reading","writing"]}

json_encode() 関数により、PHP 配列を JSON 文字列に変換することができました。 。

概要:

PHP では、 json_decode() 関数を使用して JSON 文字列を配列またはオブジェクトに変換できます。また、 json_encode() 関数を使用して PHP を変換することもできます。配列を JSON 形式に変換します。通常はデフォルトのオプションを使用できますが、必要に応じて関連するオプションを使用して設定できます。 JSON を解析またはエンコードするときに、関連関数を使用してエラー情報を取得し、処理を改善することもできます。

以上がphp jsonを配列関数に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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