2012-09-05 28 views

risposta

147

Quando si lavora con dati JSON in Android, si utilizza JSONArray per analizzare JSON che inizia con le parentesi dell'array. Le matrici in JSON vengono utilizzate per organizzare una raccolta di elementi correlati (che potrebbero essere oggetti JSON).
Per esempio: [{"name":"item 1"},{"name": "item2} ]

D'altra parte, si usa JSONObject quando si tratta di JSON che inizia con le parentesi graffe. Un oggetto JSON viene in genere utilizzato per contenere coppie chiave/valore correlate a un elemento. Ad esempio: {"name": "item1", "description":"a JSON object"}

Ovviamente, gli array e gli oggetti JSON possono essere annidati l'uno dentro l'altro. Un esempio comune di questo è un'API che restituisce un oggetto JSON che contiene alcuni metadati a fianco di un array di elementi corrispondenti alla query:

{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]} 
+2

{ "startIndex": 0, [{ "name": "punto 1"}, { "name": "item2"}]} non è né un jsonbject né una jsonArray Ho modificato lo –

4

io uso sempre oggetto, è più facilmente estendibile, un array JSON non è. Ad esempio, originariamente disponevi di alcuni dati come array json, quindi dovevi aggiungere un'intestazione di stato su di esso resteresti un po 'bloccato, a meno che non avessi annidato i dati in un oggetto. L'unico svantaggio è un leggero aumento della complessità della creazione/analisi.

Così, invece di

[datum0, datum1, datumN] 

Avresti

{data: [datum0, datum1, datumN]} 

poi è possibile aggiungere più ...

{status: "foo", data: [datum0, datum1, datumN]} 
83

La differenza è la stessa di un (Hash) Mappa vs elenco.

JSONObject:

  • contiene i valori di nome (chiave-> coppie di valori, tuple o come volete chiamarli)
    • come {ID : 1}
  • Ordine degli elementi è non importante
    • a JSONObject di {id: 1, name: 'B'} è uguale a {name: 'B', id: 1}.

JSONArray:

  • Contiene solo serie Valori
    • come [1, 'value']
  • ordine dei valori è importante
    • array di [1,'value'] non è la stessa come ['value',1]

Esempio

JSON Object --> { "":""} 

JSON Array --> [ , , , ] 

{"employees":[ 
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"}, 
    {"firstName":"Peter", "lastName":"Jones"} 
]} 
+3

questa è la risposta più interessante del gruppo – dynamic

18

migliore comprensione di programmazione.

quando sintassi è {} allora questo è JsonObject

quando sintassi è [] allora questo è JsonArray

auguriamo che questo utile a voi!

9

oggetto: Un oggetto è un insieme non ordinato di coppie nome/valore. Un oggetto inizia con {(parentesi sinistra) e termina con} (parentesi graffa destra). Ogni nome è seguito da: (due punti) e le coppie nome/valore sono separate da, (virgola).

enter image description here

matrice: Un array è un insieme ordinato di valori. Un array inizia con [(parentesi quadra sinistra) e termina con] (parentesi quadra destra). I valori sono separati da, (virgola).

enter image description here