JSON (JavaScript Object Notation) は、フロントエンドとバックエンドのデータ送信に一般的に使用される軽量のデータ交換形式です。 PHP 配列は非常に一般的なデータ構造であり、主にデータの保存と操作に使用されます。実際の開発では、後続の処理と保存を容易にするために、フロントエンドから受け取った JSON データを PHP 配列に変換する必要があることがよくあります。この記事では、JSONデータをPHP配列とオブジェクト配列に変換する方法を紹介します。
JSON は、フロントエンドとバックエンドの対話で非常に一般的な軽量のデータ交換形式です。 XML とは異なり、JSON はより簡潔で解析が簡単です。たとえば、簡単な JSON データの例を次に示します。
{ "name": "Lucy", "age": 18, "gender": "female" }
この JSON データ構造を見てみましょう。これは実際には 3 つのキーと値のペアを含むオブジェクトです。各キーと値のペアは、コロンで区切られたキーと値で構成され、キーと値のペアはカンマで区切られます。キーは文字列で、値は文字列、数値、ブール値、オブジェクト、配列などの異なるデータ型にすることができます。
PHP では、json_decode()
関数を使用して JSON データを PHP 配列に変換できます。この関数は 2 つのパラメータを受け入れます。最初のパラメータは解析する JSON データです。2 番目のパラメータはブール値で、デフォルトは false で、JSON データをオブジェクトではなく連想配列に変換するかどうかを指定します。簡単な例を次に示します。
$json_data = '{ "name": "Lucy", "age": 18, "gender": "female" }'; $php_data = json_decode($json_data); // 输出转换后的 PHP 数组 var_dump($php_data);
出力は次のとおりです。
array(3) { ["name"]=> string(4) "Lucy" ["age"]=> int(18) ["gender"]=> string(6) "female" }
上記のように、json_decode()
関数は JSON データを PHP 配列に正常に変換します。 2 番目のパラメーターが true の場合、つまり JSON データを連想配列に変換する場合は、次のように記述できます。
$json_data = '{ "name": "Lucy", "age": 18, "gender": "female" }'; $php_data = json_decode($json_data, true); // 输出转换后的 PHP 关联数组 var_dump($php_data);
出力結果は次のようになります。
array(3) { ["name"]=> string(4) "Lucy" ["age"]=> int(18) ["gender"]=> string(6) "female" }
JSON データに複数のオブジェクトが含まれている場合は、それらを PHP オブジェクト配列に変換する必要があります。以下は JSON 配列の例です。
[ { "name": "Lucy", "age": 18, "gender": "female" }, { "name": "Tom", "age": 20, "gender": "male" } ]
関数を使用してこの JSON 配列を PHP 配列に変換し、foreach## を使用します。 # 配列をループするには、各配列要素が PHP オブジェクトに変換されます。以下はサンプル コードです:
$json_data = '[{ "name": "Lucy", "age": 18, "gender": "female" }, { "name": "Tom", "age": 20, "gender": "male" }]'; $php_data = json_decode($json_data); // 将数组元素转换为 PHP 对象 foreach ($php_data as $item) { $obj_array[] = (object) $item; } // 输出转换后的 PHP 对象数组 var_dump($obj_array);
出力は次のとおりです:
array(2) { [0]=> object(stdClass)#1 (3) { ["name"]=> string(4) "Lucy" ["age"]=> int(18) ["gender"]=> string(6) "female" } [1]=> object(stdClass)#2 (3) { ["name"]=> string(3) "Tom" ["age"]=> int(20) ["gender"]=> string(4) "male" } }このコードでは、まず
json_decode()
関数を使用して JSON データを変換します。 PHP配列に変換します。次に、foreach を介して配列をループし、各配列要素を PHP オブジェクトに変換し、それを
$obj_array に保存します。 PHP オブジェクトに変換する場合、
(object) キャストを使用して配列要素を PHP オブジェクトに変換します。
概要
以上がjsonをphp配列オブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。