Javascript 在JSON中搜索特定键并返回该数据

Javascript 在JSON中搜索特定键并返回该数据,javascript,json,key-value,Javascript,Json,Key Value,我有一个JSON对象,看起来像这样 Object {doors: Array[3], baseboards: Array[6], casings: Array[3], crown_mouldings: Array[1], panel_mouldings: Array[1]…} architraves: Array[1] baseboards: Array[6] casings: Array[3] chair_rails: Array[1] crown_mo

我有一个JSON对象,看起来像这样

Object {doors: Array[3], baseboards: Array[6], casings: Array[3], crown_mouldings: Array[1], panel_mouldings: Array[1]…}
    architraves: Array[1]
    baseboards: Array[6]
    casings: Array[3]
    chair_rails: Array[1]
    crown_mouldings: Array[1]
    doors: Array[3]
    panel_mouldings: Array[1]
    roofs: Array[8]
我想知道的是,我怎样才能得到JSON对象的某一部分。很明显我可以做这样的事情

log(JSON.roof)返回屋顶数据。我的查询来自于不知道用户在任何时候都会请求什么,我从系统中得到的只是一个tex字符串,可以是任意一个键

有没有一种方法可以在JSON对象中搜索一个键并在找到时返回该特定数据

我试过这个

getData: function(obj, product) {
        console.log(obj);
        var a = obj;
        var index = 0;
        var found;
        var entry;
        for(index = 0; index < Object.keys(a).length; ++index) {
            console.log(index);
            console.log(a[1]);
            entry = a[index];
            console.log(entry);
        }
    },
getData:function(对象、产品){
控制台日志(obj);
var a=obj;
var指数=0;
var发现;
风险价值分录;
对于(索引=0;索引
上述函数的参数obj=json,product等于我要查找的键的字符串名。我没有得到任何回报。最好的办法是什么


谢谢

使用方括号表示法

var userEnteredKey = "crown_mouldings";
var data = obj[userEnteredKey];
// Array[1]

使用
中的
操作符确定对象是否具有该键

var key = 'doors';

if( key in obj )
{
    console.log( "The value assigned to the key '" + key + "' is:");
    console.log( obj[key] );
}
else
{
    console.log( "The key '" + key + "' is not in obj." );
}

如果
index
是属性名称字符串,而不是数字,则它会work@LutzHorn下面是我的JSON my badlike@itcouldenbeaboat答案的console.log,您只需使用
obj[product]
/
obj.product
以获取数据数组,如果您没有在数组中查找任何进一步的数据搜索。下面我的答案是先搜索对象,然后返回有效的数据。如果密钥不存在,接受的答案将抛出错误。