2011-11-12 14 views
18

que tienen la siguiente JSON:JSON y matriz vacía

{ 
    "users": 
    [{ 
     "user": 
     { 
     "user_id" :"a11uhk22hsd3jbskj", 
     "username" :"tom", 
     "location" : null 
     } 
    }] 
} 

consigo este JSON en respuesta a una solicitud para una API. En cuanto al documento de esta API, se supone que la ubicación es una matriz (que contiene geodatos, latitud, dirección de longitud, etc.).
Ahora la pregunta es: ¿hay un error en el json? Quiero decir, la ubicación no parece, para mí, ser una matriz, ¿o es posible representar una matriz nula de esa manera? y si es así ¿cuál es la diferencia entre:

"location" : null 
"location" : [] 

Gracias de antemano

Respuesta

10

null es un legal value (and reserved word) in JSON, pero algunos entornos no tienen un objeto "NULO" (en contraposición a un valor NULL) y por lo tanto no puede representar con precisión el JSON null. Por lo tanto, a veces lo representarán como una matriz vacía.

Si null es un valor legal en ese elemento particular de esa API en particular, depende por completo del diseñador de la API.

11
"location" : null // this is not really an array it's a null object 
"location" : [] // this is an empty array 

Parece que este API devuelve un valor nulo cuando no hay un lugar definido - en lugar de devolver una matriz vacía, realmente no demasiado inusual - pero debería decir que si van a hacer esto.

2

La primera versión es un objeto nulo, mientras que la segunda es un objeto Array con cero elementos.

Nulo puede significar aquí, por ejemplo, que no hay una ubicación disponible para ese usuario, no se ha solicitado ninguna ubicación o que se aplican algunas restricciones. Difícil de decir sin referencia a la API.