PHPでJSONを配列に変換する方法

PHPz
リリース: 2023-04-20 14:49:24
オリジナル
523 人が閲覧しました

Web 開発では、JSON (JavaScript Object Notation) が一般的に使用されるデータ交換形式です。 PHP では、json_decode() 関数を使用して、JSON 形式のデータを PHP 配列に簡単に変換できます。

json_decode() 関数を使用して JSON を PHP 配列に変換する

PHP で json_decode() 関数を使用して、JSON 形式のデータを配列に変換する構文この関数の対象:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
ログイン後にコピー

パラメータの説明:

  1. json: デコードする JSON 文字列。
  2. assoc: このパラメータが true の場合、デフォルトのオブジェクト形式ではなく、配列形式のオブジェクトが返されます。
  3. Depth: 最大解析深度を指定します。デフォルト値は 512 です。
  4. options: 解析動作を制御するためのオプション (JSON_BIGINT_AS_STRING、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、JSON_OBJECT_AS_ARRAY、JSON_THROW_ON_ERROR など)。デフォルト値は 0 です。

以下は、JSON を PHP 配列に変換するサンプル コードです:

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 输出转换后的PHP数组
print_r($arr);
?>
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)
ログイン後にコピー

上記のコードでは、最初に JSON次に、json_decode() 関数を使用して JSON 文字列を PHP 配列に変換し、最後に print_r() 関数を使用して、変換された PHP 配列を出力します。

JSON を PHP 配列形式に変換する必要がなく、JSON オブジェクト形式のままにする場合は、json_decode() 関数の 2 番目のパラメーターを省略できます。サンプル コードは次のとおりです。

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":18, "gender":"male"}&#39;;

// 将JSON字符串转换成JSON对象
$obj = json_decode($json_str);

// 输出转换后的JSON对象
print_r($obj);
?>
ログイン後にコピー

出力結果は次のとおりです。

stdClass Object
(
    [name] => Tom
    [age] => 18
    [gender] => male
)
ログイン後にコピー

上記のコードでは、2 番目のパラメーターは json_decode() 関数に渡されていません。したがって、変換後の結果は配列ではなく、JSON オブジェクトの形式になります。

json_last_error() 関数を使用して JSON デコード エラーをチェックする

json_decode() 関数を使用して JSON をデコードする場合、JSON 文字列形式が正しくない場合、デコード処理中にエラーが発生する場合があります。現時点では、json_last_error() 関数を使用して JSON デコード エラーをチェックできます。この関数の構文は次のとおりです。

int json_last_error ( void )
ログイン後にコピー

JSON デコード エラーをチェックするサンプル コードを次に示します。

<?php
// JSON字符串
$json_str = &#39;{"name":"Tom", "age":"18", "gender":"male"}&#39;;

// 将JSON字符串转换成PHP数组
$arr = json_decode($json_str, true);

// 检查解码是否出错
if (json_last_error() != JSON_ERROR_NONE) {
    echo &#39;JSON decode error: &#39; . json_last_error_msg();
} else {
    print_r($arr);
}
?>
ログイン後にコピー

上記のコードでは、age の値が属性は数値ではなく文字列であるため、JSON 文字列を PHP 配列に正しく変換できません。デコード プロセス中に、JSON デコード エラーがあることが判明したため、json_last_error_msg() 関数を通じてエラー メッセージが出力されました。出力結果は次のようになります。

JSON decode error: Malformed UTF-8 characters, possibly incorrectly encoded
ログイン後にコピー

まとめ

この記事では、PHP で json_decode() 関数を使用して JSON 形式のデータを PHP 配列に変換する方法と、その方法を紹介します。 json_last_error() 関数を使用して、JSON デコード エラーをチェックします。実際の開発では、データ交換に JSON 形式のデータを使用する必要があることが多いため、Web 開発者が JSON を PHP 配列に変換することに習熟することが非常に重要です。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート