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

时间:2013-12-05 13:40:32

标签: 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_mouldings: Array[1]
    doors: Array[3]
    panel_mouldings: Array[1]
    roofs: Array[8]

我想知道的是我怎样才能获得JSON对象的某个部分。知道我可以做点什么,

console.log(JSON.roofs)返回屋顶数据。我的查询来自于不知道用户在任何时候要求的确切内容,我从系统返回的是一串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);
        }
    },

上述函数的参数obj = json,product等于我正在寻找的键的字符串名称。我没有得到任何回报。最好的方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

使用方括号表示法。

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

答案 1 :(得分:0)

使用in运算符确定对象是否具有该密钥。

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." );
}

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in