2011-11-12 29 views
18

ho la seguente json:json e array vuoto

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

ottengo questo JSON in risposta a una richiesta di un api. Guardando il documento per questa API, la posizione dovrebbe essere un array (contenente dati geografici, latitudine, longitudine, ecc.).
Ora la domanda è: c'è un errore in the json? Voglio dire, la posizione non sembra, per me, essere un array, o è possibile rappresentare un array nullo in quel modo? e se sì, qual è la differenza tra:

"location" : null 
"location" : [] 

Grazie in anticipo

risposta

10

null è un legal value (and reserved word) in JSON, ma alcuni ambienti non avere un oggetto "NULL" (in contrapposizione ad un valore di NULL) e, quindi, non può rappresenta accuratamente JSON null. Quindi a volte lo rappresentano come una matrice vuota.

Se null è un valore legale in quell'elemento particolare di quella particolare API, dipende interamente dal progettista dell'API.

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

Sembra che questa API restituisce null quando non v'è alcuna posizione definita - invece di restituire una matrice vuota, non troppo insolita realtà - ma dovrebbe dirvi se andranno a fare questo.

2

La prima versione è un oggetto nullo mentre il secondo è un oggetto Array con elementi zero.

Null può significare qui per esempio che nessuna posizione è disponibile per quell'utente, nessuna posizione è stata richiesta o che alcune restrizioni si applicano. Difficile da dire senza alcun riferimento all'API.