PHP JSONの配列オブジェクトを変換する方法

PHPz
リリース: 2023-04-26 09:51:31
オリジナル
475 人が閲覧しました

Web 開発では、異なるプログラミング言語間でデータを送信および交換できるため、JSON 形式が非常に一般的です。 PHP 言語は、JSON 文字列を PHP 配列またはオブジェクトに変換したり、PHP 配列またはオブジェクトを JSON 文字列に変換したりできる、非常に便利な JSON エンコードおよびデコード方法も提供します。この記事では、JSON 文字列を配列またはオブジェクトに変換し、さらに配列またはオブジェクトを配列またはオブジェクトに変換する PHP のメソッドを紹介します。

  1. JSON を配列に変換する

PHP の組み込み json_decode() 関数を使用して、JSON 形式の文字列を PHP 配列に変換します。 json_decode()関数は 2 つのパラメータを受け取ります。最初のパラメータは、変換される JSON 形式の文字列です。2 番目のパラメータはブール値です。このパラメータが true に設定されている場合、JSON はデコードされます。は連想配列です。このパラメータが false の場合、オブジェクトが返されます。デフォルトでは、このパラメータは false です。

次は、json_decode() 関数を使用して JSON を配列に変換する例です。

$jsonStr = '{"name":"Jack","age":20}';
$arr = json_decode($jsonStr, true);
print_r($arr);
ログイン後にコピー

上記のコードは、キーと値で表される配列を出力します。ペア:

Array
(
    [name] => Jack
    [age] => 20
)
ログイン後にコピー
  1. JSON をオブジェクトに変換

json_decode() 関数の 2 番目のパラメーターを指定しない場合、PHP オブジェクトは返される。 json_decode() 関数を使用して JSON 形式の文字列を PHP オブジェクトに変換するのは非常に簡単で、JSON 形式の文字列を渡すだけです。

次は、JSON 形式の文字列を PHP オブジェクトに変換する例です:

$jsonStr = '{"name":"Jack","age":20}';
$obj = json_decode($jsonStr);
var_dump($obj);
ログイン後にコピー

上記のコードは PHP オブジェクトを出力します:

object(stdClass)#1 (2) {
  ["name"]=>
  string(4) "Jack"
  ["age"]=>
  int(20)
}
ログイン後にコピー
  1. 配列の変換JSON 文字列へ

PHP の組み込み json_encode() 関数を使用して、PHP 配列を JSON 文字列に変換します。 json_encode()関数は、変換される PHP 配列である 1 つのパラメーターを受け取ります。PHP 配列を JSON 文字列に変換するとき、json_encode() 関数はキーを自動的に変換します。 -value ペアを JSON 文字列のキーと値のペアに変換します。

以下は、PHP 配列を JSON 文字列に変換する例です:

$arr = array("name"=>"Jack", "age"=>20);
$jsonStr = json_encode($arr);
echo $jsonStr;
ログイン後にコピー

上記のコードは、次の文字列を JSON 形式で出力します:

{"name":"Jack","age":20}
ログイン後にコピー
  1. オブジェクトの変換 組み込みの
  2. json_encode()
関数を使用して、PHP オブジェクトを JSON 文字列に変換することも非常に簡単です。変換する前に、

json_encode() 関数の別のパラメーターである JSON_PRETTY_PRINT 定数を使用する必要があります。この定数は、JSON 文字列を読みやすく、より人間らしい形式にフォーマットするために使用されます。使いやすいフォーマット。 PHP オブジェクトを JSON 文字列に変換する例を次に示します:

class Person {
    public $name;
    public $age;
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}
$person = new Person("Jack", 20);
$jsonStr = json_encode($person, JSON_PRETTY_PRINT);
echo $jsonStr;
ログイン後にコピー
上記のコードは、次の読みやすい JSON 形式の文字列を出力します:

{
    "name": "Jack",
    "age": 20
}
ログイン後にコピー

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

  1. 複数のオブジェクトを含む配列を JSON 形式の文字列に変換するには、
  2. json_encode()
関数を使用します。 JSON 形式の文字列を PHP 配列オブジェクトに変換するには、

json_decode() 関数を使用します。以下は、複数のオブジェクトを含む配列を JSON 形式に変換する例です:

class Person {
    public $name;
    public $age;
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}
$person1 = new Person("Jack", 20);
$person2 = new Person("Tom", 25);
$person3 = new Person("Lucy", 18);
$arr = array($person1, $person2, $person3);
$jsonStr = json_encode($arr, JSON_PRETTY_PRINT);
echo $jsonStr;
ログイン後にコピー
上記のコードは、次の文字列を JSON 形式で出力します:
[
    {
        "name": "Jack",
        "age": 20
    },
    {
        "name": "Tom",
        "age": 25
    },
    {
        "name": "Lucy",
        "age": 18
    }
]
ログイン後にコピー
次に、複数のオブジェクトを含むこの配列を変換します。 JSON 形式の文字列を PHP 配列オブジェクトに変換し直します:

$jsonStr = '[{"name":"Jack","age":20},{"name":"Tom","age":25},{"name":"Lucy","age":18}]';
$arr = json_decode($jsonStr);
print_r($arr);
ログイン後にコピー
上記のコードを実行すると、次の PHP 配列オブジェクトが出力されます:

Array
(
    [0] => stdClass Object
        (
            [name] => Jack
            [age] => 20
        )

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

    [2] => stdClass Object
        (
            [name] => Lucy
            [age] => 18
        )

)
ログイン後にコピー

json_decode() を使用しているため、

関数 2 番目のパラメーターが指定されていないため、PHP オブジェクトの配列が返されます。 JSON を PHP 連想配列にデコードする場合は、2 番目のパラメーターを

true に設定する必要があります。 この記事では、PHP で JSON 形式の文字列を配列またはオブジェクトに変換し、さらに配列またはオブジェクトを JSON 文字列に変換する方法を紹介しました。これらの機能を学習すると、Web アプリケーションで JSON データをより簡単に処理できるようになります。

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

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