javascript - tamaño - Compruebe si existe una clave dentro de un objeto json
saber si un objeto esta vacio javascript (7)
Función para comprobar objetos no definidos y nulos.
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);
})
}
Esta es una forma fácil de verificar si el objeto enviado contiene un valor indefinido o nulo
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");
)
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 comprobar si existe la clave ''merchant_id''. Probé 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>
Hay varias formas de hacerlo, dependiendo de tu intención.
thisSession.hasOwnProperty(''merchant_id'');
le dirá si esta sesión tiene esa clave en sí (es decir, no es algo que herede de otra parte)
"merchant_id" in thisSession
le dirá si esta sesión tiene la clave, independientemente de dónde la obtuvo.
thisSession["merchant_id"]
devolverá false si la clave no existe, o si su valor se evalúa como falso por cualquier motivo (por ejemplo, si es un literal false
o el entero 0 y así sucesivamente).
La verificación de tipos también funcionará como:
if(typeof Obj.property == "undefined"){
// Assign value to the property here
Obj.property = someValue;
}
Prueba esto,
if(thisSession.hasOwnProperty(''merchant_id'')){
}
El objeto JS de esta thisSession
debería ser como
{
amt: "10.00",
email: "[email protected]",
merchant_id: "sam",
mobileNo: "9874563210",
orderID: "123456",
passkey: "1234"
}
puedes encontrar los detalles here
Puede probar if(typeof object !== ''undefined'')
Que hay de esto
if (thisSession.merchant_id){
...
}
Es mucho más simple que las soluciones anteriores.
Solo quería señalar esto aunque llego tarde a la fiesta. La pregunta original que estaba tratando de encontrar un "No EN" esencialmente que parece que no está respaldada por la investigación (2 enlaces a continuación) que estaba haciendo. Así que si quisieras hacer un no:
("merchant_id" in x)
true
("merchant_id_NotInObject" in x)
false
Recomiendo simplemente establecer esa expresión == a lo que estás buscando
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