在json中搜索Javascript

时间:2015-07-23 00:41:45

标签: javascript json node.js underscore.js

假设我有一个看起来像这样的JSON对象,称为“价格”

"Scrap Metal": {
            "defindex": [
                5000
            ],
            "prices": {
                "3": {
                    "Tradable": {
                        "Craftable": {
                            "0": {
                                "currency": "keys",
                                "value": 432,
                                "last_update": 1425334795,
                                "difference": 3491.64
                            }
                        }
                    }
                },
                "6": {
                    "Tradable": {
                        "Craftable": {
                            "0": {
                                "currency": "metal",
                                "value": 0.11,
                                "last_update": 1336410088,
                                "difference": 0
                            }
                        }
                    }
                }
            }
        },

这样的结构类似,但值不同。我想搜索defindex: 5000值,然后从value获取6。换句话说,如果我通过搜索defindex知道代码在哪里,我会打电话给"name".prices[6].Tradable.Craftable[0].value

我尝试使用underscore.js,但它没有用。我的代码是: _.where(prices, { defindex: '5000' });

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

我使用#find允许你使用一个函数,遍历每个键/值对,其中值将是顶键指向的值。

_.find(prices, function(value, key) { 
  return (value.defindex == "5000")
})

答案 1 :(得分:0)

由于您可能有各种各样的可能查询并且您正在使用下划线,因此您可能需要https://github.com/davidgtonge/underscore-query,因为它提供类似Mongo的查询语法: