检查JSON对象是否包含特定值的快速方法

时间:2015-02-12 10:15:15

标签: javascript json

我正在寻找直接的方法来检查我从后端收到的JSON是否保留了我需要的值,而不会抛出异常或进行if语句的for循环。

我希望它看起来像这样:

success = function(requestBody, xhr, options){
    jsonObj = JSON.parse(requestBody);
    if (!json.path.to.item.is.very.deep[0].really[3]){
        responseErrorHandler(requestBody, xhr, options)
    }
    // More Code here
}

此代码显然不起作用,因为如果I.E. json对象没有item对象,错误是throw,代码停止。

我可以创建一个for - 循环并解析json,但我想看一条捷径。

1 个答案:

答案 0 :(得分:1)

抛出错误 - 这是一件好事,你可以处理它!在try-catch中包装尝试访问值(并且只有那一行,以避免捕获不相关的错误),例如:

try {
    var x = json.path.to.item.is.very.deep[0].really[3];
} catch(e) {
    // ... handle failure... 
    return;
}
if (typeof x !== "number") { // or whatever you need
    // ... handle failure...
    return;
}
// handle success