JSONObject ve JSONArray arasındaki fark


99

Google'a kısa bir göz attıktan sonra , sözdizimi açısından farkı açıklayan bu bağlantıyı buldum .

Bir programlama senaryosunda biri diğerine ne zaman tercih edilir?

Yanıtlar:


187

Android'de JSON verileriyle çalışırken JSONArray, dizi parantezleriyle başlayan JSON'u ayrıştırmak için kullanırsınız . JSON'daki diziler, ilgili öğelerin bir koleksiyonunu düzenlemek için kullanılır (Bunlar, JSON nesneleri olabilir).
Örneğin:[{"name":"item 1"},{"name": "item2} ]

Öte yandan, JSONObjectkaşlı ayraçlarla başlayan JSON ile çalışırken kullanırsınız . JSON nesnesi, genellikle bir öğeyle ilgili anahtar / değer çiftlerini içermek için kullanılır. Örneğin:{"name": "item1", "description":"a JSON object"}

Elbette, JSON dizileri ve nesneleri iç içe olabilir. Bunun yaygın bir örneği, sorgunuzla eşleşen öğeler dizisinin yanı sıra bazı meta verileri içeren bir JSON nesnesi döndüren bir API'dir:

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

4
{"startIndex": 0, [{"name": "item 1"}, {"name": "item2"}]} ne bir jsonbject ne de düzenlediğim bir jsonArray
Sarath Sadasivan Pillai

102

Fark, (Karma) Harita ve Liste ile aynıdır.

JSONObject:

  • Adlandırılmış değerler içerir (anahtar-> değer çiftleri, tuplelar veya onları adlandırmak istediğiniz her şeyi)
    • sevmek {ID : 1}
  • Elemanların sırası önemli değil
    • JSONObject {id: 1, name: 'B'}öğesinin şuna eşittir {name: 'B', id: 1}.

JSON Dizisi:

  • Yalnızca seri değerleri içerir
    • sevmek [1, 'value']
  • Değerlerin sırası önemlidir
    • dizisi [1,'value']aynı değil['value',1]

Misal

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

JSON Array --> [ , , , ]

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

4
bu grubun en ilginç yanıtı
dinamik

24

Programlı Olarak En İyi Anlama.

sözdizimi olduğunda {}buJsonObject

sözdizimi olduğunda []buJsonArray

A JSONObject, .NET Framework öğesinde bir öğe olarak temsil edilebilen JSON benzeri bir nesnedir JSONArray. JSONArraybir (veya birçok) içerebilirJSONObject

Umarım bu size yardımcı olur!


7

Ben her zaman nesne kullanırım, daha kolay genişletilebilir, JSON dizisi değil. Örneğin, başlangıçta bir json dizisi olarak bazı verileriniz vardı, sonra üzerine bir durum başlığı eklemeniz gerekiyordu, verileri bir nesneye yerleştirmediğiniz sürece biraz sıkışmış olacaksınız. Tek dezavantaj, oluşturma / ayrıştırma karmaşıklığındaki hafif bir artıştır.

Yani yerine

[datum0, datum1, datumN]

Sahip olurdun

{data: [datum0, datum1, datumN]}

sonra daha fazlasını ekleyebilirsiniz ...

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

5

Bunu daha kolay bir şekilde anlamak için, JSON nesnesi ile JSON dizisi arasındaki farklar aşağıdadır:

Tablo Farklılığına Bağlantı: https://i.stack.imgur.com/GIqI9.png

JSON Dizisi

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.

JSON Nesnesi

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.

JSON dizisinde # 5'in altında, bu örneğin köşeli parantez içinde olması gerekmez mi?
Mike Maxwell

Bu örnek sadece kavramı açıklamak içindi. Daha iyi anlamak için örneği değiştirmiş olsam da. @MikeMaxwell'e sorduğunuz için teşekkür ederiz, sizin gibi sorular açıklama becerilerimizi geliştirir.
SAM


0

Biliyorum, önceki yanıtların tümü sorunuz için fikir veriyor. Bu SO iş parçacığını bulmadan sadece bir dakika önce bu kafa karışıklığını senden çok sevdim. Bazı yanıtları okuduktan sonra şunu elde ederim: JSONObject, JSONArray dizisinde bir öğe olarak temsil edilebilen JSON benzeri bir nesnedir. Başka bir deyişle, bir JSONArray bir (veya birçok) JSONObject içerebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.