2011-11-12 5 views
18

j'ai l'JSON suivante:JSON et tableau vide

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

Je reçois cette JSON en réponse à une demande à un api. En regardant le doc pour cette API, l'emplacement est censé être un tableau (contenant des géodonnées, la latitude, l'adresse de longitude, etc.).
Maintenant la question est: il y a une erreur dans le json? Je veux dire, l'emplacement ne me semble pas être un tableau, ou est-il possible de représenter un tableau nul de cette façon? et si oui, quelle est la différence entre:

"location" : null 
"location" : [] 

Merci à l'avance

Répondre

10

null est un legal value (and reserved word) in JSON, mais certains environnements n'ont pas un objet « NULL » (par opposition à une valeur NULL) et ne peut donc pas représenter avec précision le JSON null. Ainsi, ils le représenteront parfois comme un tableau vide.

Si null est une valeur légale dans cet élément particulier de cette API particulière est entièrement à la hauteur du concepteur API.

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

Il ressemble à cette API renvoie NULL quand il n'y a pas de lieu défini - au lieu de retourner un tableau vide, pas trop inhabituel vraiment - mais ils devraient vous dire s'ils vont le faire.

2

La première version est un objet nul tandis que la seconde est un objet Array avec zéro élément. Null peut signifier ici par exemple qu'aucun emplacement n'est disponible pour cet utilisateur, qu'aucun emplacement n'a été demandé ou que certaines restrictions s'appliquent. Difficile à dire sans référence à l'API.