Po krótkim spojrzeniu na Google znalazłem ten link który opisuje różnicę, ale z punktu widzenia składni.
Kiedy jeden byłby preferowany nad drugim w scenariuszu programowania?
Po krótkim spojrzeniu na Google znalazłem ten link który opisuje różnicę, ale z punktu widzenia składni.
Kiedy jeden byłby preferowany nad drugim w scenariuszu programowania?
Odpowiedzi:
Podczas pracy z danymi JSON w systemie Android można użyć JSONArraydo przeanalizowania JSON, który zaczyna się od nawiasów tablicy. Tablice w formacie JSON służą do organizowania kolekcji powiązanych elementów (które mogą być obiektami JSON).
Na przykład:[{"name":"item 1"},{"name": "item2} ]
Z drugiej strony użyłbyś JSONObject użyłbyś w przypadku JSON, który zaczyna się od nawiasów klamrowych. Obiekt JSON jest zwykle używany do przechowywania par klucz / wartość związanych z jednym elementem. Na przykład:{"name": "item1", "description":"a JSON object"}
Oczywiście tablice i obiekty JSON mogą być zagnieżdżone jeden w drugim. Jednym z typowych przykładów jest interfejs API, który zwraca obiekt JSON zawierający pewne metadane wraz z tablicą elementów pasujących do zapytania:
{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
Różnica jest taka sama, jak w przypadku (Hash) Map vs List.
JSONObject:
{ID : 1}{id: 1, name: 'B'}jest równy {name: 'B', id: 1}.JSONArray:
[1, 'value'][1,'value']nie jest tym samym co['value',1]Przykład
JSON Object --> { "":""}
JSON Array --> [ , , , ]
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
Najlepsze zrozumienie programowe.
kiedy składnia jest
{}taka, to jestJsonObjectkiedy składnia jest
[]taka, to jestJsonArray
A JSONObjectto obiekt podobny do JSON, który można przedstawić jako element w JSONArray. JSONArraymoże zawierać (lub wiele)JSONObject
Mam nadzieję, że to Ci pomoże!
Zawsze używam obiektu, jest łatwiejszy do rozszerzenia, tablica JSON nie. Na przykład pierwotnie miałeś jakieś dane jako tablicę json, a potem musiałeś dodać do niej nagłówek statusu, trochę byś utknął, chyba że zagnieżdżasz dane w obiekcie. Jedyną wadą jest niewielki wzrost złożoności tworzenia / analizowania.
Więc zamiast
[datum0, datum1, datumN]
Miałbyś
{data: [datum0, datum1, datumN]}
później możesz dodać więcej ...
{status: "foo", data: [datum0, datum1, datumN]}
Aby łatwiej to zrozumieć, poniżej przedstawiono różnice między obiektem JSON a tablicą JSON:
Link do różnicy tabelarycznej: https://i.stack.imgur.com/GIqI9.png
Tablica 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.
Obiekt 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.
Gdy JSON zaczyna się od {}, jest obiektem Object JSON, a kiedy zaczyna się od [], jest to Array JOSN Array
Tablica JSON może składać się z / wielu obiektów i jest nazywana tablicą obiektów
Wiem, wszystkie poprzednie odpowiedzi są wnikliwe na twoje pytanie. Ja też tak jak ty miałem to zamieszanie zaledwie minutę przed znalezieniem tego SO wątku. Po przeczytaniu niektórych odpowiedzi otrzymałem następujące informacje: JSONObject to obiekt podobny do JSON, który można przedstawić jako element tablicy, JSONArray. Innymi słowy, JSONArray może zawierać (lub wiele) JSONObject.