【发布时间】:2014-06-22 08:06:28
【问题描述】:
我有一个相当大的 JSON 响应,其结构与此类似:
{
"parent": [
{
"id": 1000,
"name": "Example",
"child": [
{
"id": 2000,
"name": "Example"
}
]
}
]
}
我需要访问child 的数据,我知道parent 和child's id。循环遍历两者似乎有点过头了。理想情况下,我可以访问数据:
parent[id:1000].child[id:2000];
如何在不遍历所有父子对象的情况下访问子对象?
另外,我设计了这个 JSON 对象,并欢迎任何关于改进它的结构的建议,因为我正在努力完成。
我有过的最接近的解决方案如下,但看起来很糟糕:
{
1000: [
{
"name": "Parent",
2000: [
{
"name": "Child"
}
]
}
]
}
【问题讨论】:
-
数字不能作为 json 对象的键。我会使用 Array.prototype.filter 方法。可能创建一个通用函数来按 id 过滤(在咖啡脚本中会很琐碎和简短,在 JS 中会更冗长)
-
您的最后一个解决方案是可以的,只是您需要将数字转换为字符串:即 { "1000": { "name": "parent", "2000": { "name": "child" }, "2001":{ "name": "child+1" }// 以此类推
-
jquery grep? api.jquery.com/jQuery.grep
-
关于 JSON 的一个罕见的好问题!
-
@AlexanderM 是的,只是“OK”,对吧?得到你关于数字到字符串的注释。谢谢。
标签: javascript arrays json loops object