2012-09-05 17 views

Antwort

147

Wenn Sie in Android mit JSON-Daten arbeiten, verwenden Sie JSONArray, um JSON zu parsen, das mit den Array-Klammern beginnt. Arrays in JSON werden verwendet, um eine Sammlung verwandter Elemente (welche JSON-Objekte sein können) zu organisieren.
Zum Beispiel: [{"name":"item 1"},{"name": "item2} ]

Auf der anderen Seite, würden Sie JSONObject verwenden, wenn sie mit JSON tun hat, die mit geschweiften Klammern beginnen. Ein JSON-Objekt wird normalerweise verwendet, um Schlüssel/Wert-Paare zu enthalten, die sich auf ein Element beziehen. Zum Beispiel: {"name": "item1", "description":"a JSON object"}

Natürlich können JSON-Arrays und -Objekte ineinander verschachtelt sein. Ein gängiges Beispiel hierfür ist ein API, das gibt ein JSON-Objekt enthält einige Metadaten neben einer Reihe der Elemente, die Ihrer Suche entsprechen:

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

{ "start": 0 [{ "name": "Artikel 1"}, { "name": "item2"}]} ist weder ein jsonbject noch ein jsonArray ich es habe –

4

ich immer Objekt verwenden, ist es leichter erweiterbar ist, JSON-Array nicht. Zum Beispiel hatten Sie ursprünglich einige Daten als JSON-Array, dann mussten Sie einen Status-Header hinzufügen, auf dem Sie ein wenig hängen bleiben würden, es sei denn, Sie hätten die Daten in einem Objekt geschachtelt. Der einzige Nachteil ist ein leichter Anstieg der Komplexität der Erstellung/Analyse.

Also statt

[datum0, datum1, datumN] 

Sie haben würde

{data: [datum0, datum1, datumN]} 

dann später können Sie mehr hinzufügen ...

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

Der Unterschied ist das gleiche wie ein (Hash) Karte vs Liste.

JSONObject:

  • Enthält genannten Werte (Key-> Wertepaare, Tupeln oder was auch immer Sie sie nennen wollen)
    • wie {ID : 1}
  • von Elementen Ordnung ist nicht wichtig
    • Ein JSON-Objekt von {id: 1, name: 'B'} entspricht {name: 'B', id: 1}.

JSONArray:

  • Enthält nur Serie Werte
    • wie [1, 'value']
  • Reihenfolge der Werte wichtig ist
    • Array von [1,'value'] ist nicht dasselbe wie ['value',1]

Beispiel

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

JSON Array --> [ , , , ] 

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

bearbeitet Das ist die interessanteste Antwort der Gruppe – dynamic

18

Beste programmatisch zu verstehen.

wenn Syntax ist {} dann ist dies JsonObject

wenn Syntax [] dann ist dies JsonArray

hoffen, dass dies für Sie hilfreich ist!

9

Objekt: Ein Objekt ist ein ungeordneter Satz von Name/Wert-Paaren. Ein Objekt beginnt mit {(linke Klammer) und endet mit} (rechte Klammer). Auf jeden Namen folgt: (Doppelpunkt) und die Name/Wert-Paare werden durch (Komma) getrennt.

enter image description here

Array: Ein Array ist eine geordnete Sammlung von Werten. Ein Array beginnt mit [(linke Klammer) und endet mit] (rechte Klammer). Werte sind durch (Komma) getrennt.

enter image description here

Verwandte Themen