PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでネストされたJSONオブジェクトを作成する方法

PHPでは、ネストされた連想配列を作成し、json_encode()関数に渡すことで、階層構造を持つJSONオブジェクトを簡単に生成できます。以下のコード例をご覧ください。

$json = json_encode(array(
    "client" => array(
        "build" => "1.0",
        "name" => "xxxx",
        "version" => "1.0"
    ),
    "protocolVersion" => 4,
    "data" => array(
        "distributorId" => "xxxx",
        "distributorPin" => "xxxx",
        "locale" => "en-US"
    )
));

コードの解説

このコードでは、「client」「protocolVersion」「data」という3つのキーを持つ連想配列を定義しています。「client」と「data」の値はさらに連想配列(ネストされた配列)になっており、これがJSONの階層構造にそのまま対応します。

json_encode()関数は、このPHPの配列をJSON形式の文字列に変換します。実行結果は以下のようになります。

{
    "client": {
        "build": "1.0",
        "name": "xxxx",
        "version": "1.0"
    },
    "protocolVersion": 4,
    "data": {
        "distributorId": "xxxx",
        "distributorPin": "xxxx",
        "locale": "en-US"
    }
}

見やすい出力にするには

第2引数にJSON_PRETTY_PRINTオプションを指定すると、インデント付きの整形されたJSON文字列を取得できます。デバッグやログ出力の際に便利です。

$json = json_encode($array, JSON_PRETTY_PRINT);

日本語を扱う場合の注意点

json_encode()はデフォルトでマルチバイト文字をUnicodeエスケープ(\uXXXX形式)に変換します。日本語をそのまま出力したい場合は、JSON_UNESCAPED_UNICODEオプションを併用してください。

$json = json_encode($array, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

このように、PHPの配列構造をそのままJSONの階層にマッピングできるため、複雑なデータ構造でも直感的にJSONを生成できます。

  1. 【初心者向け】JavaScriptでネストされたJSONオブジェクトにアクセスする方法をわかりやすく解説

    ネストされたJSONオブジェクトへのアクセスとは? JavaScriptでネストされたJSONオブジェクトにアクセスするのは、ネストされた配列にアクセスするのとほぼ同じ要領です。ここでいう「ネストされたオブジェクト」とは、別のオブジェクトの内部に格納されているオブジェクトのことです。 ネストされたプロパティへアクセスする際によく使われるのがドット記法(dot notation)です。ドット記法では、オブジェクト名.プロパティ名.その中のプロパティ名のように、階層を順番にたどって目的の値へ到達します。 例1:1階層ネストされたオブジェクトへのアクセス 次の例では、メインオブジェクト「person

  2. 【JavaScript】配列内のネストされたオブジェクトの値を合計する方法

    この記事では、JavaScriptを使って、配列内にネストされた(入れ子構造の)オブジェクトの値を合計する方法を解説します。サンプルコードでは、JSONデータの複数階層に格納された数値(costNum)を順番に取り出し、その合計をブラウザ上に表示します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=d