data = {
"address": [
{
"address1": "14 new york"
},
{
"address2": "tower B"
},
{
"postcode": 4577
}
]
}
上面的是一个有效的json,如果我data.address[0].address1
检索14 new york
,它就会起作用。但我在想是否将json构造成一个正确的方法,因为一个用户只能有一个地址,为什么不让我使用address.address1
来访问它?
我想知道为什么数据库人把数组放在地址对象中。
答案 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框架都足够聪明地为您执行此操作