假设我们正在开发一个将返回 json 有效负载的 Web 服务
在这个 json 有效负载中,我有一个名为 elementCollection 的键
选项 1 将其作为对象数组返回
{
"elementCollection" : [
{ "id" : "...", "val": "..."}, { "id" : "...", "val": "..."},{ "id" : "...", "val": "..."}
]
}
选项 2 返回对象的 Hashmap
{
"elementCollection" : {
"id01": { "id" : "...", "val": "..."},
"id02": { "id" : "...", "val": "..."},
"id03": { "id" : "...", "val": "..."}
}
}
如果我们想提供确定性的排序作为响应,并且顺序很重要,请确保通过响应有效负载保留顺序......
问题:Array 是否比 Hashmap 更好/更安全,或者它们是等效的解决方案?
所以我们可以确定 Option01response.elementCollection === Object.values(Option02response.elementCollection) 如果在某些情况下这可能会被破坏......您将如何重现/描述它?
或者如果我们使用 Hashmap,他应该采用更具体的解决方案,例如...... 选项 3 将其作为断言排序的对象的哈希图返回
{
"elementCollection" : {
"id01": { "id" : "...", sortId:0, "val": "..."},
"id02": { "id" : "...", sortId:1, "val": "..."},
"id03": { "id" : "...", sortId:2, "val": "..."}
}
}
我总是要求后端以数组的形式向我提供所有数据,因为您可以将大量数组方法应用于数据。如果数据以地图形式出现,我总是最终将数据转换为数组。当需要数组中的项目时,我总是可以
Array::find()
。在极少数情况下,我会创建一个地图来通过 id 属性查找项目。