我有一个像这样的JSON结构:
{
map: [
{"key1":"valueA1","key2":"valueA2","key3":"valueA3"},{"key1":"valueB1","key2":"valueB2","key3":"valueB3"},{"key1":"valueC1","key2":"valueC2","key3":"valueC3"},.... etc
]
}
…我通过JSON.parse()加载到我的javascript应用程序中成为对象.
我想从对象数组的元素中检索(比方说)key3的值,其中key2 =’valueB2′.
我可以通过循环来完成它,但想知道是否有更优雅(例如单行和更有效)的方式这样做,而不必知道数组元素的索引号?
我已经google加载了一些网站,但收效甚微.或者我会更好地简化/删除数组,而不是简单的对象列表?
谢谢.
最佳答案
JSON通常会在所有键和值周围加上双引号,但数字除外.
然而,循环是您拥有的最有效和最佳选择.有新的函数数组迭代方法,但只能在新的JS引擎和浏览器上使用,它们可以在这里找到:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array
如果您可以自由更改JSON结构,则应将其实现为Object而不是对象数组,其中键是key2的值,值是Object.
例:
{
"valueB2": {
"key1": "valueB1","key2": "valueB2","key3": "valueB3"
}
}
对象的检索将是O(1)并且像obj [“valueB2”]一样简单