Après avoir jeté un coup d'œil sur Google, j'ai trouvé ce lien qui décrit la différence, mais d'un point de vue syntaxique.
Quand l'un serait-il préféré à l'autre dans un scénario de programmation?
Lorsque vous travaillez avec des données JSON sous Android, vous utilisez JSONArray
pour analyser JSON qui commence par les crochets du tableau. Les tableaux en JSON sont utilisés pour organiser une collection d'éléments associés (qui peuvent être des objets JSON).
Par exemple:[{"name":"item 1"},{"name": "item2} ]
D'autre part, vous utiliseriez JSONObject
lorsque vous traitez avec JSON qui commence par des accolades. Un objet JSON est généralement utilisé pour contenir des paires clé / valeur liées à un élément. Par exemple:{"name": "item1", "description":"a JSON object"}
Bien entendu, les tableaux et objets JSON peuvent être imbriqués les uns dans les autres. Un exemple courant de ceci 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"} ]}
La différence est la même qu'une (Hash) Map vs List.
JSONObject:
{ID : 1}
{id: 1, name: 'B'}
est égal à{name: 'B', id: 1}
.JSONArray:
[1, 'value']
[1,'value']
n'est pas le même que['value',1]
Exemple
la source
Meilleure compréhension programmatique.
A
JSONObject
est un objet de type JSON qui peut être représenté comme un élément dans leJSONArray
.JSONArray
peut contenir un (ou plusieurs)JSONObject
J'espère que cela vous sera utile!
la source
J'utilise toujours un objet, il est plus facilement extensible, le tableau JSON ne l'est pas. Par exemple, vous aviez à l'origine des données sous forme de tableau json, puis vous deviez ajouter un en-tête d'état dessus, vous seriez un peu bloqué, à 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
Vous auriez
puis plus tard, vous pouvez en ajouter plus ...
la source
Pour le comprendre plus facilement, 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
Objet JSON
la source
Lorsqu'un JSON commence par {}, il s'agit d'un objet JSON Object et lorsqu'il commence par [], il s'agit d'un Array JOSN Array
Un tableau JSON peut être composé d'un / plusieurs objets et cela s'appelle un tableau d'objets
la source
Je sais, toutes les réponses précédentes répondent à votre question. J'ai eu trop comme toi cette confusion juste une minute avant de trouver ce fil SO. 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 du tableau, le JSONArray. En d'autres termes, un JSONArray peut contenir un (ou plusieurs) JSONObject.
la source