2012-09-05 34 views

Respuesta

147

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, se usaría JSONObject cuando se trata de JSON que comienza con llaves. Un objeto JSON se usa generalmente 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 uno dentro del otro. 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 coincidan con su consulta:

{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]} 
+2

{ "startIndex": 0, [{ "name": "el punto 1"}, { "name": "elemento2"}]} no es ni un jsonbject ni un JSONArray he editado que –

4

Siempre utilizo objeto, es más fácilmente extensible, matriz JSON no lo es. Por ejemplo, originalmente tenía algunos datos como una matriz json, y luego necesitaba agregar un encabezado de estado en el que estaría un poco bloqueado, a menos que anidara los datos en un objeto. La única desventaja es un ligero aumento en la complejidad de creación/análisis.

Así que en lugar de

[datum0, datum1, datumN] 

Tendrías

{data: [datum0, datum1, datumN]} 

, posteriormente, se puede añadir más ...

{status: "foo", data: [datum0, datum1, datumN]} 
83

La diferencia es lo mismo que un (Hash) Mapa vs Lista.

JSONObject:

  • contiene valores con nombre (número-> pares de valores, tuplas o como se quiera llamarlos)
    • como {ID : 1}
  • Orden de los elementos es no es importante
    • un JSONObject de {id: 1, name: 'B'} es igual a {name: 'B', id: 1}.

JSONArray:

  • contiene sólo valores de serie
    • como [1, 'value']
  • orden de los valores es importante
    • gama de [1,'value'] no es el mismo que ['value',1]

Ejemplo

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

JSON Array --> [ , , , ] 

{"employees":[ 
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"}, 
    {"firstName":"Peter", "lastName":"Jones"} 
]} 
+3

esta es la respuesta más interesante del grupo – dynamic

18

mejor programación comprensión.

cuando sintaxis es {} entonces este es JsonObject

cuando sintaxis es [] entonces este es JsonArray

Esperamos que esto útil para usted!

9

objeto: Un objeto es un conjunto desordenado de pares de nombre/valor. Un objeto comienza con {(corchete izquierdo) y termina con} (corchete derecho). A cada nombre le sigue: (dos puntos) y los pares nombre/valor están separados por, (coma).

enter image description here

array: Una matriz es una colección ordenada de valores. Una matriz comienza con [(corchete izquierdo) y termina con] (corchete derecho). Los valores están separados por, (coma).

enter image description here