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

PHPでJSONデータを配列オブジェクトに変換する方法

PHPz
PHPzオリジナル
2023-04-23 09:08:33491ブラウズ

開発プロセスでは、JSON データを配列またはオブジェクト配列に変換するシナリオが頻繁に発生します。人気のあるサーバー側プログラミング言語として、PHP は、JSON データを処理するときに変換操作を実行する便利なメソッドも提供します。この記事では、例を使用して、JSON データを配列オブジェクトの配列に変換する方法を示します。

前提知識

具体的な操作を説明する前に、PHP の基本的な知識を理解する必要があります。

JSON

JSON (JavaScript Object Notation の略) は、軽量のデータ交換形式です。データをキーと値のペアまたは配列形式として表します。 JSON データは、JavaScript のオブジェクトと配列を使用して表現できます。

PHP の配列

PHP では、配列はデータを収集する構造です。さまざまなタイプの値を格納できます。配列では、各値にキーが関連付けられており、キーには任意の文字列または整数を使用できます。

PHP の stdClass オブジェクト

stdClass オブジェクトは、PHP の非常に単純なオブジェクト モデルです。必要に応じてプロパティを動的に割り当てることができます。さらに、オブジェクトを配列に変換したり、配列を次のように変換したりすることもできます。オブジェクト。JSON データを操作する場合に便利です。

Json を配列に変換する

まず、JSON データを PHP 配列に変換する方法を見てみましょう。 PHP には、JSON 文字列を PHP 配列に変換できる組み込み関数 json_decode() が用意されています。この関数の使用法は次のとおりです:

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

このうち、$json は変換する必要がある JSON 文字列を表し、$assoc は連想配列を返すかどうかを表します (デフォルトは false、つまり、オブジェクトが返されます); $ Depth は最大再帰深さを表します (デフォルトは 512); $options は変換オプションを表します (デフォルトは 0)。

これは、JSON データを含むファイルがあると仮定した簡単な例です。data.json:

{
    "name": "Typechoer",
    "age": 25,
    "gender": "male",
    "skills": ["PHP", "JavaScript", "CSS"]
}

次のコードを使用して、JSON データを読み取ることができます。

$json = file_get_contents('data.json');
$data = json_decode($json, true);
print_r($data);

出力結果は以下の通りです:

Array
(
    [name] => Typechoer
    [age] => 25
    [gender] => male
    [skills] => Array
        (
            [0] => PHP
            [1] => JavaScript
            [2] => CSS
        )
)

ご覧のとおり、JSONデータをPHP配列に変換する操作を実装しました。のデータは変更されません。

Json をオブジェクト配列に変換する

JSON データを PHP 配列に変換するだけでなく、オブジェクト配列に変換することもできます。オブジェクト配列は stdClass オブジェクトの配列であり、各オブジェクトは要素を表します。オブジェクトのフィールド名を気にする必要はなく、オブジェクトのプロパティを通じてアクセスするだけで済みます。以下は、JSON データを PHP オブジェクトの配列に変換するメソッドです:

json_decode(string, false, 512, JSON_OBJECT_AS_ARRAY);

ご覧のとおり、$assoc パラメーターを false に設定し、$options パラメーターを JSON_OBJECT_AS_ARRAY に設定するだけです。 json_decode() 関数を使用します。変換操作を実行するだけです。

同様に、上記の JSON データに基づいて、次のコードを使用してそれを PHP オブジェクト配列に変換できます:

$json = file_get_contents('data.json');
$data = json_decode($json, false, 512, JSON_OBJECT_AS_ARRAY);
print_r($data);

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

Array
(
    [name] => Typechoer
    [age] => 25
    [gender] => male
    [skills] => Array
        (
            [0] => PHP
            [1] => JavaScript
            [2] => CSS
        )
)

オブジェクト配列が使用されるため、オブジェクト プロパティを使用してデータにアクセスできます。たとえば、次のようになります。

echo $data[0]->name; // Typechoer
echo $data[0]->skills[2]; // CSS

Json が多次元配列に変換されました

サブオブジェクトまたは入れ子になった配列がある場合JSON データに変換し、PHP 配列またはオブジェクトに変換します。配列を使用する場合でも、データの多次元の性質を維持できます。

次は、入れ子構造の JSON データの例です:

{
    "account": {
        "name": "Tom",
        "age": 28
    },
    "courses": [
        {
            "name": "PHP",
            "hour": 80
        },
        {
            "name": "JavaScript",
            "hour": 60
        }
    ]
}

次のコードを使用して、それを PHP 配列に変換できます:

$json = file_get_contents('data.json');
$data = json_decode($json, true);
print_r($data);

出力結果

Array
(
    [account] => Array
        (
            [name] => Tom
            [age] => 28
        )

    [courses] => Array
        (
            [0] => Array
                (
                    [name] => PHP
                    [hour] => 80
                )

            [1] => Array
                (
                    [name] => JavaScript
                    [hour] => 60
                )

        )

)

同様に、PHP オブジェクト配列に変換することもできます:

$json = file_get_contents('data.json');
$data = json_decode($json, false, 512, JSON_OBJECT_AS_ARRAY);
print_r($data);

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

Array
(
    [account] => Array
        (
            [name] => Tom
            [age] => 28
        )

    [courses] => Array
        (
            [0] => Array
                (
                    [name] => PHP
                    [hour] => 80
                )

            [1] => Array
                (
                    [name] => JavaScript
                    [hour] => 60
                )

        )

)

ご覧のとおり、多次元データの構造は保持されます。

概要

この記事では、JSON データを PHP 配列またはオブジェクト配列に変換する方法を紹介しました。 PHP の組み込み関数 json_decode() を使用すると、JSON データと PHP データの間で迅速に変換できます。開発で JSON データを扱う必要がある場合、この知識は間違いなく役に立ちます。

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

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