Check if a key exists inside a json object

后端 未结 9 1345
旧巷少年郎
旧巷少年郎 2020-11-29 14:48
amt: \"10.00\"
email: \"sam@gmail.com\"
merchant_id: \"sam\"
mobileNo: \"9874563210\"
orderID: \"123456\"
passkey: \"1234\"

The above is the JSON o

相关标签:
9条回答
  • 2020-11-29 15:30

    There's several ways to do it, depending on your intent.

    thisSession.hasOwnProperty('merchant_id'); will tell you if thisSession has that key itself (i.e. not something it inherits from elsewhere)

    "merchant_id" in thisSession will tell you if thisSession has the key at all, regardless of where it got it.

    thisSession["merchant_id"] will return false if the key does not exist, or if its value evaluates to false for any reason (e.g. if it's a literal false or the integer 0 and so on).

    0 讨论(0)
  • 2020-11-29 15:34

    (I wanted to point this out even though I'm late to the party)
    The original question you were trying to find a 'Not IN' essentially. It looks like is not supported from the research (2 links below) that I was doing.

    So if you wanted to do a 'Not In':

    ("merchant_id" in x)
    true
    ("merchant_id_NotInObject" in x)
    false 
    

    I'd recommend just setting that expression == to what you're looking for

    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

    0 讨论(0)
  • 2020-11-29 15:37

    This code causes esLint issue: no-prototype-builtins

    foo.hasOwnProperty("bar") 
    

    The suggest way here is:

    Object.prototype.hasOwnProperty.call(foo, "bar");
    
    0 讨论(0)
  • 2020-11-29 15:39

    Type check also works :

    if(typeof Obj.property == "undefined"){
        // Assign value to the property here
        Obj.property = someValue;
    }
    
    0 讨论(0)
  • 2020-11-29 15:41

    you can do like this:

    if("merchant_id" in thisSession){ /** will return true if exist */
     console.log('Exist!');
    }
    

    or

    if(thisSession["merchant_id"]){ /** will return its value if exist */
     console.log('Exist!');
    }
    
    0 讨论(0)
  • 2020-11-29 15:42

    function to check undefined and null objects

    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);
            })
        }
    

    here is an easy way to check whether object sent is contain undefined or null

    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");
    )
    
    0 讨论(0)
提交回复
热议问题