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

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

王林
王林オリジナル
2023-05-06 12:10:08452ブラウズ

エンコード プロセス中に、JSON 形式でデータを送信することは非常に一般的な操作です。 PHP には、JSON 文字列を PHP 値に変換するための json_decode() という関数が用意されています。この記事では、PHP を使用して JSON を配列およびオブジェクトに変換する方法について説明します。

json_decode()を使用して配列に変換する

次の JSON 文字列があるとします。

{
    "name": "Tom",
    "age": 30,
    "hobbies": ["reading", "running", "swimming"],
    "address": {
        "city": "Beijing",
        "country": "China"
    }
}

次に、それを PHP 配列に変換する必要があります。 。 json_decode() 関数を使用し、2 番目のパラメーターを true に設定して、JSON 文字列を連想配列に変換できます。コードは次のとおりです:

$jsonString = '{"name":"Tom","age":30,"hobbies":["reading","running","swimming"],"address":{"city":"Beijing","country":"China"}}';
$assocArray = json_decode($jsonString, true);
print_r($assocArray);

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

Array
(
    [name] => Tom
    [age] => 30
    [hobbies] => Array
        (
            [0] => reading
            [1] => running
            [2] => swimming
        )

    [address] => Array
        (
            [city] => Beijing
            [country] => China
        )

)

ご覧のとおり、JSON 文字列が PHP 配列に正常に変換され、結果が出力されました。

使用 json_decode() オブジェクトに変換

JSON 文字列を PHP 配列に変換するだけでなく、PHP オブジェクトに変換することもできます。同様に、json_decode() 関数を使用して 2 番目のパラメータを false に設定するか省略して、JSON 文字列をオブジェクトに変換できます。コードは次のとおりです。

$jsonString = '{"name":"Tom","age":30,"hobbies":["reading","running","swimming"],"address":{"city":"Beijing","country":"China"}}';
$obj = json_decode($jsonString);
var_dump($obj);

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

object(stdClass)#1 (4) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  int(30)
  ["hobbies"]=>
  array(3) {
    [0]=>
    string(7) "reading"
    [1]=>
    string(7) "running"
    [2]=>
    string(8) "swimming"
  }
  ["address"]=>
  object(stdClass)#2 (2) {
    ["city"]=>
    string(7) "Beijing"
    ["country"]=>
    string(5) "China"
  }
}

ご覧のとおり、JSON 文字列が PHP オブジェクトに正常に変換され、結果が出力されました。

使用 json_decode() オブジェクト配列に変換

場合によっては、JSON 文字列を複数の PHP オブジェクトに変換する必要があります。この場合、まずそれを PHP 配列に変換し、次に配列マッピング関数を使用して PHP オブジェクトの配列に変換します。コードは次のとおりです:

$jsonString = '[{"name":"Tom","age":30},{"name":"Alice","age":25},{"name":"Bob","age":40}]';
$array = json_decode($jsonString, true);
$objArray = array_map(function($item) {
    return (object) $item;
}, $array);
print_r($objArray);

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

Array
(
    [0] => stdClass Object
        (
            [name] => Tom
            [age] => 30
        )

    [1] => stdClass Object
        (
            [name] => Alice
            [age] => 25
        )

    [2] => stdClass Object
        (
            [name] => Bob
            [age] => 40
        )

)

ご覧のとおり、JSON 文字列を PHP オブジェクト配列に正常に変換し、結果を出力しました。

つまり、PHP は、JSON 文字列を PHP 配列およびオブジェクトに変換する非常に便利な方法を提供します。 json_decode() 関数を使用して、適切なパラメーターを指定するだけです。ほとんどの Web API はデータを JSON で返すため、これは便利です。

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

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