amt: "10.00"
email: "[email protected]"
merchant_id: "sam"
mobileNo: "9874563210"
orderID: "123456"
passkey: "1234"
Lo anterior es el objeto JSON con el que estoy tratando. Quiero verificar si existe la clave 'merchant_id'. Intenté el siguiente código, pero no funciona. ¿Alguna forma de lograrlo?
<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
fuente
fuente
<?php echo json_encode($_POST); ?>
?console.log(thisSession);
?!("merchant_id" in thisSession)==0
donde simplemente puede usar"merchant_id" in thisSession
?Respuestas:
Prueba esto,
el objeto JS
thisSession
debería ser comopuedes encontrar los detalles aquí
fuente
if(thisSession.merchant_id !== undefined)
yif(thisSession.hasOwnProperty('merchant_id'))
o está haciendo lo mismo detrás de las escenas?error Do not access Object.prototype method 'hasOwnProperty' from target object
al usar este método. Pensamientos?Object.prototype.hasOwnProperty.call(thisSession, 'merchant_id')
Hay varias formas de hacerlo, dependiendo de su intención.
thisSession.hasOwnProperty('merchant_id');
le dirá si thisSession tiene esa clave en sí (es decir, no es algo que hereda de otro lugar)"merchant_id" in thisSession
le dirá si esta sesión tiene la clave, independientemente de dónde la haya obtenido.thisSession["merchant_id"]
devolverá falso si la clave no existe, o si su valor se evalúa como falso por algún motivo (por ejemplo, si es un literalfalse
o el entero 0, etc.).fuente
(Quería señalar esto a pesar de que llego tarde a la fiesta)
La pregunta original que estabas tratando de encontrar un 'No IN' esencialmente. Parece que no es compatible con la investigación (2 enlaces a continuación) que estaba haciendo.
Entonces, si quisieras hacer un 'No en':
Recomiendo simplemente configurar esa expresión == a lo que estás buscando
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in http://www.w3schools.com/jsref/jsref_operators.asp
fuente
La verificación de tipo también funciona:
fuente
Modifico un poco tu sentencia if y funciona (también para obj heredado - mira el fragmento)
Mostrar fragmento de código
fuente
puedes hacer así:
o
fuente
función para verificar objetos indefinidos y nulos
Aquí hay una manera fácil de verificar si el objeto enviado contiene valores indefinidos o nulos
fuente
Puedes probar
if(typeof object !== 'undefined')
fuente