Différence entre JSONObject et JSONArray

après un bref regard sur Google, j'ai trouvé ce lien qui décrit la différence, mais d'un point de vue syntaxique.

quand préférerait-on l'un par rapport à l'autre dans un scénario de programmation?

83
demandé sur Luke Taylor 2012-09-06 01:08:51

7 réponses

lorsque vous travaillez avec des données JSON dans Android, vous utiliseriez JSONArray pour analyser JSON qui commence avec les parenthèses de tableau. Les tableaux dans JSON sont utilisés pour organiser une collection d'articles connexes (qui pourrait être des objets JSON).

Par exemple: [{"name":"item 1"},{"name": "item2} ]

d'un autre côté, vous utiliserez JSONObject lorsque vous avez affaire à JSON qui commence avec des bretelles bouclées. Un objet JSON est généralement utilisé pour contenir des paires clé / valeur liées à un article. Par exemple: {"name": "item1", "description":"a JSON object"}

bien sûr, les tableaux et 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 des éléments correspondant à votre requête:

{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
156
répondu elevine 2014-09-07 00:52:28

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

JSONObject:

  • contient des valeurs nommées (key - >value pairs, tuples ou peu importe comment vous voulez 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:

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

exemple

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

JSON Array --> [ , , , ]

{"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}
89
répondu Aleksandr Panzin 2016-11-08 16:11:35

meilleure compréhension programmatique.

quand la syntaxe est {} alors c'est JsonObject

quand la syntaxe est [] alors c'est JsonArray

A JSONObject est un objet de type JSON qui peut être représenté comme un élément dans le JSONArray . JSONArray peut contenir un (ou plusieurs) JSONObject

espérons que cela vous sera utile !

20
répondu Yogesh Rathi 2018-08-13 13:57:18

" objet: un objet est un ensemble non ordonné de paires nom/valeur. Un objet commence par {(attelle gauche) et se termine par } (attelle droite). Chaque nom est suivi de deux-points (:) et les paires nom/valeur sont séparés par des , (virgule).

enter image description here

tableau : Un tableau est une collection ordonnée de valeurs. Un tableau commence par [(crochet de gauche) et se termine par ] (parenthèse droite). Les valeurs sont séparées par, (virgule).

enter image description here

13
répondu Nitya Kumar 2016-09-13 09:05:37

j'utilise toujours object, il est plus facilement extensible, JSON array n'est pas. Par exemple, vous aviez à l'origine des données sous forme de tableau json, puis vous aviez besoin d'ajouter un en-tête de statut dessus, vous seriez un peu coincé, à moins que vous n'ayez placé les données dans un objet. Le seul inconvénient est une légère augmentation de la complexité de la création / l'analyse.

donc au lieu de

[datum0, datum1, datumN]

Vous aurez

{data: [datum0, datum1, datumN]}

puis plus tard, vous pouvez ajouter plus...

{status: "foo", data: [datum0, datum1, datumN]}
6
répondu Adam 2012-09-05 21:18:50

je sais, toutes les réponses précédentes sont perspicaces à votre question. J'ai eu trop comme vous cette confusion juste une minute avant de trouver ce fil ainsi. Après avoir lu certaines des réponses, voici ce que j'obtiens: un JSONObject est un objet de type JSON qui peut être représenté comme un élément dans le tableau, Le JSONArray. En d'autres termes, un JSONArray peut contenir un (ou plusieurs) JSONObject.

0
répondu Serge Kishiko 2018-08-09 13:27:44

pour le comprendre plus facilement, voici les différences entre l'objet JSON et JSON array:

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:  {rollno: 1, firstname: 'Somya'} is not 
    equal to { firstname: 'Somya', rollno: 1}
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.
0
répondu SAM 2018-08-29 07:35:52