Después de echar un vistazo a Google, encontré este enlace que describe la diferencia, pero desde el punto de vista de la sintaxis.
¿Cuándo se preferiría uno sobre el otro en un escenario de programación?
Cuando esté trabajando con datos JSON en Android, usaría JSONArray
para analizar JSON que comienza con los corchetes de la matriz. Las matrices en JSON se utilizan para organizar una colección de elementos relacionados (que podrían ser objetos JSON).
Por ejemplo:[{"name":"item 1"},{"name": "item2} ]
Por otro lado, lo usaría JSONObject
cuando se trata de JSON que comienza con llaves. Un objeto JSON generalmente se usa para contener pares clave / valor relacionados con un elemento. Por ejemplo:{"name": "item1", "description":"a JSON object"}
Por supuesto, las matrices JSON y los objetos pueden estar anidados unos dentro de otros. Un ejemplo común de esto es una API que devuelve un objeto JSON que contiene algunos metadatos junto con una matriz de los elementos que coinciden con su consulta:
{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
La diferencia es la misma que la de un mapa (hash) frente a una lista.
JSONObject:
{ID : 1}
{id: 1, name: 'B'}
es igual a{name: 'B', id: 1}
.JSONArray:
[1, 'value']
[1,'value']
no es lo mismo que['value',1]
Ejemplo
fuente
Mejor comprensión programática.
A
JSONObject
es un objeto similar a JSON que se puede representar como un elemento enJSONArray
.JSONArray
puede contener una (o muchas)JSONObject
¡Espero que esto te sea útil!
fuente
Siempre uso object, es más fácil de ampliar, la matriz JSON no lo es. Por ejemplo, originalmente tenía algunos datos como una matriz json, luego necesitaba agregar un encabezado de estado en el que estaría un poco atascado, a menos que haya anidado los datos en un objeto. La única desventaja es un ligero aumento en la complejidad de la creación / análisis.
Entonces en lugar de
Tendrías
luego más tarde puedes agregar más ...
fuente
Para entenderlo de una manera más fácil, las siguientes son las diferencias entre el objeto JSON y la matriz JSON:
Enlace a la diferencia tabular: https://i.stack.imgur.com/GIqI9.png
Matriz JSON
Objeto JSON
fuente
Cuando un JSON comienza con {} es un objeto Object JSON y cuando comienza con [] es un Array JOSN Array
Una matriz JSON puede constar de / muchos objetos y eso se denomina matriz de objetos
fuente
Lo sé, todas las respuestas anteriores son útiles para tu pregunta. También tuve como tú esta confusión solo un minuto antes de encontrar este hilo SO. Después de leer algunas de las respuestas, esto es lo que obtengo: Un JSONObject es un objeto similar a JSON que se puede representar como un elemento en la matriz, JSONArray. En otras palabras, un JSONArray puede contener un JSONObject (o muchos).
fuente