it-swarm.com.de

Unterschied zwischen JSONObject und JSONArray

Nach einem kurzen Blick auf Google fand ich dieses Link , das den Unterschied beschreibt, jedoch aus syntaktischer Sicht.

Wann wird in einem Programmierszenario das eine dem anderen vorgezogen?

88
Luke Taylor

Wenn Sie mit JSON-Daten in Android arbeiten, verwenden Sie JSONArray, um JSON zu analysieren, das mit den Array-Klammern beginnt. Arrays in JSON werden verwendet, um eine Auflistung verwandter Elemente (bei denen es sich um JSON-Objekte handeln kann) zu organisieren.
Beispielsweise: [{"name":"item 1"},{"name": "item2} ]

Andererseits würden Sie JSONObject verwenden, wenn Sie sich mit JSON befassen, das mit geschweiften Klammern beginnt. Ein JSON-Objekt wird normalerweise verwendet, um Schlüssel/Wert-Paare zu enthalten, die sich auf ein Element beziehen. Beispielsweise: {"name": "item1", "description":"a JSON object"}

Natürlich können JSON-Arrays und -Objekte ineinander verschachtelt sein. Ein häufiges Beispiel hierfür ist eine API, die ein JSON-Objekt zurückgibt, das einige Metadaten zusammen mit einem Array der Ihrer Abfrage entsprechenden Elemente enthält:

{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
164
elevine

Der Unterschied ist der gleiche wie bei einer (Hash-) Karte gegenüber einer Liste.

JSONObject:

  • Enthält benannte Werte (Schlüssel-> Wertepaare, Tupel oder wie auch immer Sie sie nennen möchten)
    • mögen {ID : 1}
  • Reihenfolge der Elemente ist nicht wichtig
    • ein JSONObject von {id: 1, name: 'B'} entspricht {name: 'B', id: 1}.

JSONArray:

  • Enthält nur Serienwerte
    • mögen [1, 'value']
  • Reihenfolge der Werte ist wichtig
    • anordnung 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"}
]}
91

Am besten programmatisch verstehen.

wenn die Syntax {} ist, dann ist dies JsonObject

wenn die Syntax [] ist, dann ist dies JsonArray

Ein JSONObject ist ein JSON-ähnliches Objekt, das als Element im JSONArray dargestellt werden kann. JSONArray kann ein (oder mehrere) JSONObject enthalten

Hoffe das wird dir weiterhelfen!

22
Yogesh Rathi

Ich verwende immer Objekt, es ist leichter erweiterbar, JSON-Array nicht. Zum Beispiel hatten Sie ursprünglich einige Daten als JSON-Array, dann mussten Sie einen Statusheader hinzufügen, damit Sie ein bisschen hängen blieben, es sei denn, Sie hätten die Daten in einem Objekt verschachtelt. Der einzige Nachteil ist eine geringfügig höhere Komplexität beim Erstellen/Parsen.

Also statt

[datum0, datum1, datumN]

Du hättest

{data: [datum0, datum1, datumN]}

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

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

Um es einfacher zu verstehen, sind die folgenden Unterschiede zwischen JSON-Objekt und JSON-Array:

Link zum tabellarischen Unterschied: https://i.stack.imgur.com/GIqI9.png

JSON-Array

1. Arrays in JSON are used to organize a collection of related items
   (Which could be JSON objects)
2.  Array values must be of type string, number, object, array, boolean or null
3.  Syntax: 
           [ "Ford", "BMW", "Fiat" ]
4.  JSON arrays are surrounded by square brackets []. 
    **Tip to remember**  :  Here, order of element is important. That means you have 
    to go straight like the shape of the bracket i.e. straight lines. 
   (Note :It is just my logic to remember the shape of both.) 
5.  Order of elements is important. Example:  ["Ford","BMW","Fiat"] is not 
    equal to ["Fiat","BMW","Ford"]
6.  JSON can store nested Arrays that are passed as a value.

JSON-Objekt

1.  JSON objects are written in key/value pairs.
2.  Keys must be strings, and values must be a valid JSON data type (string, number, 
    object, array, boolean or null).Keys and values are separated by a colon.
    Each key/value pair is separated by a comma.
3.  Syntax:
         { "name":"Somya", "age":25, "car":null }
4.  JSON objects are surrounded by curly braces {} 
    Tip to remember : Here, order of element is not important. That means you can go 
    the way you like. Therefore the shape of the braces i.e. wavy. 
    (Note : It is just my logic to remember the shape of both.)
5.  Order of elements is not important. 
    Example:  { rollno: 1, firstname: 'Somya'} 
                   is equal to 
             { firstname: 'Somya', rollno: 1}
6.  JSON can store nested objects in JSON format in addition to nested arrays.
3
SAM

Ich weiß, alle vorherigen Antworten sind aufschlussreich für Ihre Frage. Ich hatte diese Verwirrung auch gern, nur eine Minute bevor ich diesen SO Thread gefunden habe. Nachdem ich einige der Antworten gelesen habe, erhalte ich Folgendes: Ein JSONObject ist ein JSON-ähnliches Objekt, das als Element im Array, dem JSONArray, dargestellt werden kann. Mit anderen Worten, ein JSONArray kann ein (oder many) JSONObject.

0
Serge Kishiko