所以这是我的代码:
var result = JSON.parse(res);
if (result.data.status === 404) {
client.chatMessage(steamid,"Please check that the order id is correct, Code = ERR:404")
} else {
var meta = result.meta_data;
var tradeurl = meta[0].value;
var billing = result.billing;
var name = billing.first_name +" "+ billing.last_name;
var status = result.status;
client.chatMessage(steamid,"Name : "+name+"\nTradeUrl : "+ tradeurl +"\n Current Status : " + status)
}
我要做的是首先检查id是否存在,如果不存在则回复:
{ code: 'woocommerce_rest_shop_order_invalid_id',
message: 'Invalid ID.',
data: { status: 404 } }
正如您所看到的,我添加了一个if条件来检查此值是否存在,但问题是当订单ID正确时,则返回另一个不包含data
字段的JSON,当反过来崩溃应用程序时,有没有办法在实际拉动之前检查JSON中是否存在字段?
答案 0 :(得分:0)
当订单ID正确时[...]不包含数据字段
因此,如果data
仅在发生错误时出现在响应中,则可以检查result.data
是否未定义
if (typeof result.data === "undefined") {
/* ok */
}
else {
/* error */
}
答案 1 :(得分:0)
有一个名为Optional Chaining的ECMAScript新提案。一旦获得批准,您就可以这样做:
var zip = user?.address?.zip
即使undefined
为user
且undefined
不存在,zip也会address
。
不是工作的答案,但值得注意。