Solución:
Cuando trabaje 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, usarías 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:
- Contiene valores con nombre (pares clave-> valor, tuplas o como quieras llamarlos)
- igual que
{ID : 1}
- igual que
- El orden de los elementos no es importante
- un JSONObject de
{id: 1, name: 'B'}
es igual a{name: 'B', id: 1}
.
- un JSONObject de
JSONArray:
- Contiene solo valores de serie
- igual que
[1, 'value']
- igual que
- El orden de los valores es importante
- gama de
[1,'value']
no es lo mismo que['value',1]
- gama de
Ejemplo
JSON Object --> { "":""}
JSON Array --> [ , , , ]
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
Mejor comprensión programática.
cuando la sintaxis es
{}
entonces esto esJsonObject
cuando la sintaxis es
[]
entonces esto esJsonArray
A JSONObject
es un objeto similar a JSON que se puede representar como un elemento en el JSONArray
. JSONArray
puede contener una (o muchas) JSONObject
¡Espero que esto te sea útil!