Check if a key exists inside a json object
1 2 3 4 5 6 | amt:"10.00" email:"[email protected]" merchant_id:"sam" mobileNo:"9874563210" orderID:"123456" passkey:"1234" |
以上是我正在处理的JSON对象。 我想检查'merchant_id'键是否存在。 我尝试了下面的代码,但它不起作用。 有什么方法可以实现吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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"); } } |
试试这个,
1 2 3 | if(thisSession.hasOwnProperty('merchant_id')){ } |
JS对象
1 2 3 4 5 6 7 8 | { amt:"10.00", email:"[email protected]", merchant_id:"sam", mobileNo:"9874563210", orderID:"123456", passkey:"1234" } |
你可以在这里找到详细信息
根据您的意图,有几种方法可以做到这一点。
如果密钥不存在,
(即使我迟到了,我想指出这一点)
你试图找到一个'不在'的原始问题。
看起来我从事的研究(下面的2个链接)不支持。
所以,如果你想做一个'不在':
1 2 3 4 | ("merchant_id" in x) true ("merchant_id_NotInObject" in x) false |
我推荐
只需将表达式==设置为您正在寻找的内容
1 2 3 4 5 6 7 8 | if (("merchant_id" in thisSession)==false) { // do nothing. } else { alert("yeah"); } |
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in
http://www.w3schools.com/jsref/jsref_operators.asp
类型检查也有效:
1 2 3 4 | if(typeof Obj.property =="undefined"){ // Assign value to the property here Obj.property = someValue; } |
我稍微更改你的if语句并且有效(也适用于继承的obj - 看看代码片段)
1 | if(!("merchant_id" in thisSession)) alert("yeah"); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | window.onload = function getApp() { var sessionA = { amt:"10.00", email:"[email protected]", merchant_id:"sam", mobileNo:"9874563210", orderID:"123456", passkey:"1234", } var sessionB = { amt:"10.00", email:"[email protected]", mobileNo:"9874563210", orderID:"123456", passkey:"1234", } var sessionCfromA = Object.create(sessionA); // inheritance sessionCfromA.name = 'john'; if(!("merchant_id" in sessionA)) alert("merchant_id not in sessionA"); if(!("merchant_id" in sessionB)) alert("merchant_id not in sessionB"); if(!("merchant_id" in sessionCfromA)) alert("merchant_id not in sessionCfromA"); if("merchant_id" in sessionA) alert("merchant_id in sessionA"); if("merchant_id" in sessionB) alert("merchant_id in sessionB"); if("merchant_id" in sessionCfromA) alert("merchant_id in sessionCfromA"); } |
用于检查undefined和null对象的函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function elementCheck(objarray, callback) { var list_undefined =""; async.forEachOf(objarray, function (item, key, next_key) { console.log("item----->", item); console.log("key----->", key); if (item == undefined || item == '') { list_undefined = list_undefined +"" + key +"!! "; next_key(null); } else { next_key(null); } }, function (next_key) { callback(list_undefined); }) } |
这是检查发送的对象是否包含undefined或null的简单方法
1 2 3 4 5 6 7 8 9 10 11 | var objarray={ "passenger_id":"59b64a2ad328b62e41f9050d", "started_ride":"1", "bus_id":"59b8f920e6f7b87b855393ca", "route_id":"59b1333c36a6c342e132f5d5", "start_location":"", "stop_location":"" } elementCheck(objarray,function(list){ console.log("list"); ) |
你可以尝试