我正在寻找直接的方法来检查我从后端收到的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,但我想看一条捷径。
答案 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