检查JSON对象中是否存在任何深度的参数

时间:2011-06-16 13:51:10

标签: javascript json object square-bracket

api在不可确定的深度返回JSON响应,其中可能包含或不包含某些元素。如何检查物业是否存在?一些参数包括奇怪的名称,如“@param”或​​“$”。示例如下。

我写了类似的检查,但由于上述原因不能使用点语法。帮助修改这一点非常感谢。

function checkValue(objectPath) {
    var keys = Object.isArray(objectPath) ? objectPath : objectPath.split(".");
    if (keys[0] == "window") keys.shift();
    try {
    return keys.inject(window, function(obj, key) {return obj[key];});
    } catch (e) {
        return undefined;
    }
}

要测试的对象的示例是:

var obj = {
member: {
    '@member-age': {
        value: 42
    }
}};

在我使用checkValue(obj.member.age)检查之前,但在此示例中出于显而易见的原因无法执行此操作。

0 个答案:

没有答案