web-dev-qa-db-fra.com

Différence entre JSONObject et JSONArray

Après avoir jeté un coup d’œil à Google, j’ai trouvé ceci lien qui décrit la différence, mais d’un point de vue syntaxique.

Quand une personne sera-t-elle préférée par rapport à l'autre dans un scénario de programmation?

88
Luke Taylor

Lorsque vous travaillez avec des données JSON sous Android, utilisez JSONArray pour analyser JSON, qui commence par les crochets de tableau. Les tableaux en JSON permettent d’organiser une collection d’articles connexes (pouvant être des objets JSON).
Par exemple: [{"name":"item 1"},{"name": "item2} ]

D'autre part, vous utiliseriez JSONObject pour traiter avec JSON qui commence par des accolades. Un objet JSON est généralement utilisé pour contenir des paires clé/valeur associées à un élément. Par exemple: {"name": "item1", "description":"a JSON object"}

Bien entendu, les tableaux et les objets JSON peuvent être imbriqués les uns dans les autres. Un exemple courant est une API qui renvoie un objet JSON contenant des métadonnées à côté d'un tableau d'éléments correspondant à votre requête:

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

La différence est la même que pour une carte (hachage) vs liste.

JSONObject:

  • Contient des valeurs nommées (paires clé-> valeur, tuples ou quoi que vous souhaitiez les appeler)
    • comme {ID : 1}
  • L'ordre des éléments n'est pas important
    • un JSONObject de {id: 1, name: 'B'} est égal à {name: 'B', id: 1}.

JSONArray:

  • Ne contient que des valeurs de série
    • comme [1, 'value']
  • L'ordre des valeurs est important
    • tableau de [1,'value'] n'est pas la même chose que ['value',1]

Exemple

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

JSON Array --> [ , , , ]

{"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}
91
Aleksandr Panzin

Mieux comprendre par programmation.

quand la syntaxe est {}Alors c'est JsonObject

quand la syntaxe est [] alors c’est JsonArray

Un JSONObject est un objet de type JSON qui peut être représenté sous forme d'élément dans le JSONArray. JSONArray peut contenir un (ou plusieurs) JSONObject

J'espère que cela vous aidera!

22
Yogesh Rathi

J'utilise toujours l'objet, il est plus facilement extensible, le tableau JSON ne l'est pas. Par exemple, si vous aviez initialement des données sous forme de tableau JSON, vous deviez ajouter un en-tête d'état, vous seriez un peu coincé, à moins que vous n'ayez imbriqué les données dans un objet. Le seul inconvénient est une légère augmentation de la complexité de la création/analyse.

Donc au lieu de

[datum0, datum1, datumN]

Vous auriez

{data: [datum0, datum1, datumN]}

alors plus tard vous pouvez ajouter plus ...

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

Pour mieux le comprendre, voici les différences entre l’objet JSON et le tableau JSON:

Lien vers la différence tabulaire: https://i.stack.imgur.com/GIqI9.png

Tableau JSON

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.

Objet JSON

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

Je sais, toutes les réponses précédentes sont perspicaces à votre question. J'avais aussi comme vous cette confusion juste une minute avant de trouver ce fil SO. Après avoir lu certaines des réponses, voici ce que je comprends: n objet JSON est un objet de type JSON. JSONArray peut représenter un élément du tableau, autrement dit, un JSONArray peut contenir un (ou plusieurs) JSONObject.

0
Serge Kishiko