amt: "10.00"
email: "[email protected]"
merchant_id: "sam"
mobileNo: "9874563210"
orderID: "123456"
passkey: "1234"
Powyżej jest obiekt JSON, z którym mam do czynienia. Chcę sprawdzić, czy istnieje klucz „merchant_id”. Wypróbowałem poniższy kod, ale nie działa. Jest jakiś sposób na osiągnięcie tego?
<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>
javascript
json
Ajeesh
źródło
źródło
<?php echo json_encode($_POST); ?>
?console.log(thisSession);
?!("merchant_id" in thisSession)==0
gdzie można po prostu użyć"merchant_id" in thisSession
?Odpowiedzi:
Spróbuj tego,
obiekt JS
thisSession
powinien być podobnyszczegóły znajdziesz tutaj
źródło
if(thisSession.merchant_id !== undefined)
iif(thisSession.hasOwnProperty('merchant_id'))
czy robi to samo za kulisami?error Do not access Object.prototype method 'hasOwnProperty' from target object
podczas korzystania z tej metody. Myśli?Object.prototype.hasOwnProperty.call(thisSession, 'merchant_id')
Można to zrobić na kilka sposobów, w zależności od intencji.
thisSession.hasOwnProperty('merchant_id');
powie ci, czy ta sesja ma sam ten klucz (tj. nie jest czymś, co dziedziczy z innego miejsca)"merchant_id" in thisSession
powie ci, czy ta sesja w ogóle ma klucz, niezależnie od tego, skąd go ma.thisSession["merchant_id"]
zwróci false, jeśli klucz nie istnieje lub jeśli jego wartość z jakiegokolwiek powodu zostanie zmieniona na false (np. jeśli jest to literałfalse
lub liczba całkowita 0 i tak dalej).źródło
(Chciałem to podkreślić, mimo że jestem spóźniony na imprezę)
. Pierwotne pytanie, które próbowaliście znaleźć w zasadzie „NIE IN”. Wygląda na to, że nie jest obsługiwany w badaniach (2 linki poniżej), które przeprowadzałem.
Więc jeśli chcesz zrobić „Not In”:
Polecam ustawienie tego wyrażenia == na to, czego szukasz
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in http://www.w3schools.com/jsref/jsref_operators.asp
źródło
Sprawdzanie typu działa również:
źródło
Lekko zmieniam instrukcję if i działa (także dla dziedziczonych obiektów - spójrz na fragment)
Pokaż fragment kodu
źródło
możesz zrobić tak:
lub
źródło
funkcja do sprawdzania niezdefiniowanych i pustych obiektów
tutaj jest prosty sposób, aby sprawdzić, czy wysłany obiekt zawiera niezdefiniowany lub zerowy
źródło
Możesz spróbować
if(typeof object !== 'undefined')
źródło