检查 JSON 对象中是否存在密钥

2022-08-29 23:25:23
amt: "10.00"
email: "sam@gmail.com"
merchant_id: "sam"
mobileNo: "9874563210"
orderID: "123456"
passkey: "1234"

以上是我正在处理的 JSON 对象。我想检查密钥是否存在。我尝试了下面的代码,但它不起作用。有什么方法可以实现它吗?merchant_id

<script>
window.onload = function getApp()
{
  var thisSession = JSON.parse('<?php echo json_encode($_POST); ?>');
  //console.log(thisSession);
  if (!("merchant_id" in thisSession)==0)
  {
    // do nothing.
  }
  else 
  {
    alert("yeah");
  }
}
</script>

答案 1

试试这个,

if(thisSession.hasOwnProperty('merchant_id')){

}

JS 对象应该像thisSession

{
amt: "10.00",
email: "sam@gmail.com",
merchant_id: "sam",
mobileNo: "9874563210",
orderID: "123456",
passkey: "1234"
}

您可以在此处找到详细信息


答案 2

有几种方法可以做到这一点,这取决于你的意图。

thisSession.hasOwnProperty('merchant_id');会告诉你这个会话本身是否具有该密钥(即不是它从其他地方继承的东西)

"merchant_id" in thisSession会告诉你这个会话是否有密钥,无论它在哪里得到它。

thisSession["merchant_id"]如果键不存在,或者如果其值因任何原因(例如,如果它是文本或整数 0 等)计算结果为 false,则将返回 false。false