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?
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?
Respuestas:
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
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 JSONArray
. JSONArray
puede contener una (o muchas)JSONObject
¡Espero que esto te sea útil!
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
[datum0, datum1, datumN]
Tendrías
{data: [datum0, datum1, datumN]}
luego más tarde puedes agregar más ...
{status: "foo", data: [datum0, datum1, datumN]}
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
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.
Objeto 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.
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
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).