ホームページ >バックエンド開発 >PHPチュートリアル >PHP JSON 配列を親オブジェクト内にカプセル化するにはどうすればよいですか?
オブジェクト内に JSON コードをカプセル化する方法
PHP では、配列から JSON オブジェクトを作成するのは簡単そうに見えますが、その JSON オブジェクトを別のオブジェクト構造内にカプセル化する必要がある場合。これを実現する方法を詳しく見てみましょう。
次の PHP 配列を考えてみましょう:
$post_data = array( 'item_type_id' => $item_type, 'string_key' => $string_key, 'string_value' => $string_value, 'string_extra' => $string_extra, 'is_public' => $public, 'is_public_for_contacts' => $public_contacts );
この配列を JSON にエンコードするには、次のコードを使用します:
$post_data = json_encode($post_data);
これにより、次の形式の JSON が生成されます:
{ "item_type_id": 4, "string_key": "key", "string_value": "value", "string_extra": "100000583627394", "is_public": true, "is_public_for_contacts": false }
ただし、場合によってはこの JSON 構造を追加の「item」オブジェクト内にラップする必要がある場合があります。次のコードは、解決策を示しています。
$post_data = json_encode(array('item' => $post_data), JSON_FORCE_OBJECT);
JSON_FORCE_OBJECT 定数を 2 番目の引数として json_encode() に渡すことにより、配列であるかどうかに関係なく、データをオブジェクトとしてエンコードするように PHP に指示します。これにより、結果の JSON 構造が目的の「item」オブジェクトでラップされるようになります。
{ "item": { "item_type_id": 4, "string_key": "key", "string_value": "value", "string_extra": "100000583627394", "is_public": true, "is_public_for_contacts": false } }
JSON 仕様によれば、「{}」括弧はオブジェクトを示し、「[]」は配列を表すことに注意してください。 。 JSON_FORCE_OBJECT を使用すると、特定の要件を満たすように出力構造をカスタマイズできます。
以上がPHP JSON 配列を親オブジェクト内にカプセル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。