如何检查来自JavaScript的服务器数据中是否存在密钥?

pre*_*pra 3 javascript json node.js

我从服务器获取了一些JSON值,但我不知道是否会有特定的字段。

有时我会以这种形式得到答复

{
 "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited"
}
Run Code Online (Sandbox Code Playgroud)

有时我会收到这种形式的回复

{
 "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited",
   "vehicle": "yes"
}
Run Code Online (Sandbox Code Playgroud)

如何检查javascript对象中是否存在钥匙?

Chr*_*arp 6

由于您不知道对象是否存在,因此您可以检查response['prop']语法。您也可以检查点语法,就像上面所做的那样,但我更喜欢这种方式。我养成了这个习惯,因为response.prop除非编译器清楚地知道该属性,否则语法在 Typescript 中不起作用。

if (serverResponse && serverResponse['vehicle']) {
    // vehicle key exists
    // do your stuff 
} else {
    // vehicle key Does Not exist
    // do your stuff 
}
Run Code Online (Sandbox Code Playgroud)


Muk*_*wat 5

有多种检查方法,例如:

const obj = {
   "regatta_name":"ProbaRegatta",
   "country":"Congo",
   "status":"invited",
   "vehicle": "yes"
};
Run Code Online (Sandbox Code Playgroud)
  • 通过使用in运算符:if("vehicle" in obj){ -- }
  • 通过使用hasOwnPropertyif(obj.hasOwnProperty("vehicle")){ -- }
  • 通过检查:if(obj["vehicle"]){ -- }if(obj.vehicle){ -- }