如何编写嵌套的多维json对象

Gan*_*alf 15 jquery json

我正在研究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"
    }
};
Run Code Online (Sandbox Code Playgroud)

如果我的对象变得太嵌套了,我应该遵循这个约定吗?

Dmi*_*sev 22

考虑使用数组而不是数字对象.

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"
        }
    ],
};
Run Code Online (Sandbox Code Playgroud)

(如果我忘记关闭{或[或者,很难在SO中输入代码:p),请原谅我

这样你甚至不需要有类似的计数

"products":2,
Run Code Online (Sandbox Code Playgroud)

要么

"childrenimages":2
Run Code Online (Sandbox Code Playgroud)

你干脆做

foo.products.length
Run Code Online (Sandbox Code Playgroud)

要么

foo.products[0].childrenimages.length
Run Code Online (Sandbox Code Playgroud)

祝好运 :)

  • 这实际上是一个明智的建议,使用数字索引作为对象属性名称是没有意义的。 (2认同)