ホームページ >バックエンド開発 >PHPの問題 >jsonをphp配列オブジェクトに変換する方法

jsonをphp配列オブジェクトに変換する方法

PHPz
PHPzオリジナル
2023-04-26 10:24:52545ブラウズ

JSON (JavaScript Object Notation) は、フロントエンドとバックエンドのデータ送信に一般的に使用される軽量のデータ交換形式です。 PHP 配列は非常に一般的なデータ構造であり、主にデータの保存と操作に使用されます。実際の開発では、後続の処理と保存を容易にするために、フロントエンドから受け取った JSON データを PHP 配列に変換する必要があることがよくあります。この記事では、JSONデータをPHP配列とオブジェクト配列に変換する方法を紹介します。

JSON とは何ですか?

JSON は、フロントエンドとバックエンドの対話で非常に一般的な軽量のデータ交換形式です。 XML とは異なり、JSON はより簡潔で解析が簡単です。たとえば、簡単な JSON データの例を次に示します。

{
  "name": "Lucy",
  "age": 18,
  "gender": "female"
}

この JSON データ構造を見てみましょう。これは実際には 3 つのキーと値のペアを含むオブジェクトです。各キーと値のペアは、コロンで区切られたキーと値で構成され、キーと値のペアはカンマで区切られます。キーは文字列で、値は文字列、数値、ブール値、オブジェクト、配列などの異なるデータ型にすることができます。

JSON データを PHP 配列に変換する

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 データに複数のオブジェクトが含まれている場合は、それらを 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 配列およびオブジェクト配列に変換する方法について説明します。実際の開発では、フロントエンドとバックエンドのデータを頻繁に操作する必要があるため、JSON 配列と PHP 配列間の変換を理解することが非常に重要です。変換する際、対応する関数を処理に正しく使用するには、操作しているデータ型を知る必要があることに注意してください。

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

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