在我的情况下将数组放在json中的原因

时间:2015-05-20 08:29:27

标签: javascript jquery json

data = {
    "address": [
        {
            "address1": "14 new york"
        },
        {
            "address2": "tower B"
        },
        {
            "postcode": 4577
        }
    ]
}
上面的

是一个有效的json,如果我data.address[0].address1检索14 new york,它就会起作用。但我在想是否将json构造成一个正确的方法,因为一个用户只能有一个地址,为什么不让我使用address.address1来访问它?

我想知道为什么数据库人把数组放在地址对象中。

2 个答案:

答案 0 :(得分:1)

您必须使用[0],因为您在“地址”中添加了一个数组。我建议你这样修改你的数据结构:

data = {
"address": 
    {
        "address1": "14 new york",
        "address2": "tower B",
        "postcode": 4577
    }
}

所以你可以使用data.address.address1

编辑:为什么数据库人这样做了?我没有看到任何正当理由,我认为这是一个错误

答案 1 :(得分:0)

简短回答:可能是懒惰。

没有看到代码,它一直在猜测工作。 (甚至不知道后端写的是什么语言)

但可能会执行像{ "id": "555c44e39743a5141c00d0a1", "email": "aaa@gmail.com", "name": "john", "city": "Madrid" } 这样的事情。根据select语句,db返回1个或多个记录。默认情况下,大多数后端语言在数组中解释它。(因为它可以有0,1个或更多记录)=>后端开发人员可以通过映射它来简化它,选择第一个。

如果您告诉对象只有1(一对一或多对一关系),大多数ORM框架都足够聪明地为您执行此操作