1. ホーム
  2. jquery

[解決済み] ネストした多次元のjsonオブジェクトの書き方

2022-02-09 05:13:11

質問内容

jsonを勉強しているのですが、多次元のjsonオブジェクトを入れ子にして書く方法はこれでいいのでしょうか?

var foo = {
    "logged_in":true,
    "town":"Dublin",
    "state":"Ohio",
    "country":"USA",
    "products":2,
    "0":{
        "pic_id":"1500",
        "description":"Picture of a computer",
        "localion":"img.cloudimages.us/2012/06/02/computer.jpg",
        "type":"jpg",
        "childrenimages":2

        "0":{
        "pic_id":"15011",
        "description":"Picture of a cpu",
        "localion":"img.cloudimages.us/2012/06/02/mycpu.png",
        "type":"png"
          }
        "1":{
        "pic_id":"15012",
        "description":"Picture of a cpu two",
        "localion":"img.cloudimages.us/2012/06/02/thiscpu.png",
        "type":"png"
          }
    },
    "1":{
        "pic_id":"1501",
        "description":"Picture of a cpu",
        "localion":"img.cloudimages.us/2012/06/02/cpu.png",
        "type":"png"
    }
};

これは正しいのでしょうか、それともオブジェクトが深くネストされた場合に従うべき規則があるのでしょうか?

どのように解決するのですか?

数値化されたオブジェクトの代わりに配列を使用することを検討してください。

jsonの配列は[]で定義します。 http://www.json.org/

以下はその一例です。

var foo = {
    "logged_in":true,
    "town":"Dublin",
    "state":"Ohio",
    "country":"USA",
    "products":
    [
        {
            "pic_id":"1500",
            "description":"Picture of a computer",
            "localion":"img.cloudimages.us/2012/06/02/computer.jpg",
            "type":"jpg",
            "childrenimages":
            [
                {
                    "pic_id":"15011",
                    "description":"Picture of a cpu",
                    "localion":"img.cloudimages.us/2012/06/02/mycpu.png",
                    "type":"png"
                },
                {
                    "pic_id":"15012",
                    "description":"Picture of a cpu two",
                    "localion":"img.cloudimages.us/2012/06/02/thiscpu.png",
                    "type":"png"
                }
            ]
        },
        {
            "pic_id":"1501",
            "description":"Picture of a cpu",
            "localion":"img.cloudimages.us/2012/06/02/cpu.png",
            "type":"png"
        }
    ],
};

(クローズ { または [ または ] を忘れていたらごめんなさい、SOでコードを入力するのはかなり難しいです :p )

この方法では、以下のようなカウントは必要ありません。

"products":2,

または

"childrenimages":2

を行うだけです。

foo.products.length

または

foo.products[0].childrenimages.length

頑張ってください :)