amt: "10.00"
email: "[email protected]"
merchant_id: "sam"
mobileNo: "9874563210"
orderID: "123456"
passkey: "1234"
O texto acima é o objeto JSON com o qual estou lidando. Quero verificar se a chave 'merchant_id' existe. Eu tentei o código abaixo, mas não está funcionando. Alguma maneira de conseguir isso?
<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
fonte
fonte
<?php echo json_encode($_POST); ?>
?console.log(thisSession);
?!("merchant_id" in thisSession)==0
onde você pode simplesmente usar"merchant_id" in thisSession
?Respostas:
Tente isso,
o objeto JS
thisSession
deve ser comovocê pode encontrar os detalhes aqui
fonte
if(thisSession.merchant_id !== undefined)
eif(thisSession.hasOwnProperty('merchant_id'))
ou está fazendo a mesma coisa nos bastidores?error Do not access Object.prototype method 'hasOwnProperty' from target object
ao usar este método. Pensamentos?Object.prototype.hasOwnProperty.call(thisSession, 'merchant_id')
Existem várias maneiras de fazer isso, dependendo da sua intenção.
thisSession.hasOwnProperty('merchant_id');
dirá se esta sessão possui essa chave em si (ou seja, não é algo que ela herda de outro lugar)"merchant_id" in thisSession
dirá se esta sessão tem a chave, independentemente de onde ela foi obtida.thisSession["merchant_id"]
retornará false se a chave não existir ou se seu valor for avaliado como false por qualquer motivo (por exemplo, se for um literalfalse
ou o número inteiro 0 e assim por diante).fonte
(Eu queria salientar isso mesmo que eu esteja atrasado para a festa)
A pergunta original que você estava tentando encontrar essencialmente 'Não está dentro'. Parece que não há suporte na pesquisa (2 links abaixo) que eu estava fazendo.
Então, se você quiser fazer um 'Not In':
Eu recomendo apenas definir essa expressão == para o que você está procurando
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in http://www.w3schools.com/jsref/jsref_operators.asp
fonte
A verificação de tipo também funciona:
fonte
Eu mudo sua instrução if levemente e funciona (também para objetos herdados - veja no snippet)
Mostrar snippet de código
fonte
você pode fazer assim:
ou
fonte
função para verificar objetos nulos e indefinidos
aqui está uma maneira fácil de verificar se o objeto enviado contém indefinido ou nulo
fonte
Podes tentar
if(typeof object !== 'undefined')
fonte