Web 開発では、異なるプログラミング言語間でデータを送信および交換できるため、JSON 形式が非常に一般的です。 PHP 言語は、JSON 文字列を PHP 配列またはオブジェクトに変換したり、PHP 配列またはオブジェクトを JSON 文字列に変換したりできる、非常に便利な JSON エンコードおよびデコード方法も提供します。この記事では、JSON 文字列を配列またはオブジェクトに変換し、さらに配列またはオブジェクトを配列またはオブジェクトに変換する PHP のメソッドを紹介します。
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 )
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) }
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}
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 }
配列オブジェクトを相互に変換する
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 サイトの他の関連記事を参照してください。