Android

Difference between JSONObject and JSONArray

Разница между JSONObject и JSONArray

После краткого просмотра Google я нашел эту ссылку, которая описывает разницу, но с точки зрения синтаксиса.

Когда в сценарии программирования было бы предпочтительнее одно по сравнению с другим?

Переведено автоматически
Ответ 1

Когда вы работаете с данными JSON в Android, вы бы использовали JSONArray для синтаксического анализа JSON, который начинается со скобок массива. Массивы в JSON используются для организации коллекции связанных элементов (которые могут быть объектами JSON).
Например: [{"name":"item 1"},{"name": "item2"} ]

С другой стороны, вы бы использовали JSONObject при работе с JSON, который начинается с фигурных скобок. Объект JSON обычно используется для хранения пар ключ / значение, связанных с одним элементом. Например: {"name": "item1", "description": "a JSON object"}

Конечно, массивы и объекты JSON могут быть вложены друг в друга. Одним из распространенных примеров этого является API, который возвращает объект JSON, содержащий некоторые метаданные наряду с массивом элементов, соответствующих вашему запросу:

{"startIndex": 0, "data": [{"name": "item 1"},{"name": "item2"} ]}
Ответ 2

Разница такая же, как между картой (хэш) и списком.

JSONObject:


  • Содержит именованные значения (пары ключ-> значение, кортежи или как вы хотите их называть)

    • Нравится {ID : 1}


  • Порядок элементов не важен

    • JSONObject из {id: 1, name: 'B'} равно {name: 'B', id: 1}.


JSONArray:


  • Содержит только значения серии

    • Нравится [1, 'value']


  • Важен порядок значений

    • массив [1,'value'] - это не то же самое, что ['value',1]



Пример

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

JSON Array --> [ , , , ]

{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
Ответ 3

Лучшее понимание программирования.


когда синтаксис {}, то это JsonObject


когда синтаксис [] , то это JsonArray


A JSONObject - это JSON-подобный объект, который может быть представлен как элемент в JSONArray. JSONArray может содержать a (или много) JSONObject

Надеюсь, это будет вам полезно!

Ответ 4

Я всегда использую object, его легче расширять, массив JSON - нет. Например, изначально у вас были некоторые данные в виде массива json, затем вам нужно было добавить к нему заголовок состояния, и вы бы немного застряли, если бы вы не вложили данные в объект. Единственным недостатком является небольшое увеличение сложности создания / синтаксического анализа.

Итак, вместо

[datum0, datum1, datumN]

У вас будет

{data: [datum0, datum1, datumN]}

позже вы сможете добавить больше...

{status: "foo", data: [datum0, datum1, datumN]}
java android json arrays