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


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

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

7 83

7 ответов:

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

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

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

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

разница такая же, как (хэш)карта против списка.

JSONObject:

  • содержит именованные значения (ключ->значение пары, кортежи или что вы хотите назвать их)
    • как {ID : 1}
  • порядок элементов не важен
    • JSONObject of {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"}
]}

лучшее программное понимание.

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

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

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

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

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

Так вместо

[datum0, datum1, datumN]

ты

{data: [datum0, datum1, datumN]}

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

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

Я знаю, все предыдущие ответы проницательны для вашего вопроса. Мне тоже нравилась эта путаница всего за минуту до того, как я нашел эту нить. После прочтения некоторых ответов, вот что я получаю: JSONObject-это JSON-подобный объект, который может быть представлен как элемент в массиве, JSONArray. Другими словами, JSONArray может содержать (или много) JSONObject.

чтобы понять это проще, ниже приведены различия между объектом JSON и массивом JSON:

ссылка на табличную разницу:https://i.stack.imgur.com/GIqI9.png

массив 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:  {rollno: 1, firstname: 'Somya'} is not 
    equal to { firstname: 'Somya', rollno: 1}
6.  JSON can store nested Arrays that are passed as a value.

объект 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.