449 Stimmen

Überprüfen, ob ein Schlüssel in einem JSON-Objekt vorhanden ist

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

Das obige ist das JSON-Objekt, mit dem ich arbeite. Ich möchte überprüfen, ob der merchant_id-Schlüssel vorhanden ist. Ich habe den folgenden Code versucht, aber es funktioniert nicht. Gibt es einen Weg, um es zu erreichen?

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

16voto

Syed Punkte 13587

Dieser Code verursacht ein esLint Problem: no-prototype-builtins

foo.hasOwnProperty("bar") 

Der empfohlene Weg hier ist:

Object.prototype.hasOwnProperty.call(foo, "bar");

9voto

Kamil Kiełczewski Punkte 69048

Ich ändere Ihre if-Anweisung leicht und es funktioniert (auch für geerbte Objekte - siehe bei Snippet)

if (!("merchant_id" in thisSession)) alert("ja");

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

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

var sessionCfromA = Object.create(sessionA); // Vererbung
sessionCfromA.name = 'john';

if (!("merchant_id" in sessionA)) alert("merchant_id nicht in sessionA");
if (!("merchant_id" in sessionB)) alert("merchant_id nicht in sessionB");
if (!("merchant_id" in sessionCfromA)) alert("merchant_id nicht 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");

0voto

sai sanath Punkte 51

Funktion zum Überprüfen von undefinierten und null-Objekten

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

Hier ist eine einfache Möglichkeit zu überprüfen, ob das gesendete Objekt undefiniert oder null enthält

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

0voto

Sankha Jayalath Punkte 353

Wir können die lodash Bibliothek verwenden

import _ from 'lodash';

if(_.isEmpty(merchant_id)){
    // nichts tun
}
else{
    //etwas mit der Händler-ID machen
}

-15voto

Zonger Punkte 65

Sie können versuchen if(typeof object !== 'undefined')

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X