Perbedaan antara JSONObject dan JSONArray

99

Setelah melihat Google sebentar, saya menemukan tautan ini yang menjelaskan perbedaannya, namun dari sudut pandang sintaks.

Kapan salah satu lebih disukai daripada yang lain dalam skenario pemrograman?

Luke Taylor
sumber

Jawaban:

186

Saat Anda bekerja dengan data JSON di Android, Anda akan menggunakan JSONArrayuntuk mengurai JSON yang dimulai dengan tanda kurung siku. Array di JSON digunakan untuk mengatur koleksi item terkait (Yang bisa berupa objek JSON).
Sebagai contoh:[{"name":"item 1"},{"name": "item2} ]

Di sisi lain, Anda akan menggunakannya JSONObjectsaat menangani JSON yang dimulai dengan tanda kurung kurawal. Objek JSON biasanya digunakan untuk memuat pasangan kunci / nilai yang terkait dengan satu item. Sebagai contoh:{"name": "item1", "description":"a JSON object"}

Tentu saja, array dan objek JSON mungkin bertumpuk di dalam satu sama lain. Salah satu contoh umum dari ini adalah API yang mengembalikan objek JSON yang berisi beberapa metadata bersama dengan larik item yang cocok dengan kueri Anda:

{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
Eric Levine
sumber
4
{"startIndex": 0, [{"name": "item 1"}, {"name": "item2"}]} bukan jsonbject atau jsonArray yang telah saya edit
Sarath Sadasivan Pillai
101

Perbedaannya sama dengan Peta (Hash) vs Daftar.

JSONObject:

  • Berisi nilai bernama (key-> value pair, tuple atau apa pun yang Anda ingin menyebutnya)
    • Suka {ID : 1}
  • Urutan elemen tidak penting
    • sebuah JSONObject dari {id: 1, name: 'B'}sama dengan {name: 'B', id: 1}.

JSONArray:

  • Berisi hanya nilai seri
    • Suka [1, 'value']
  • Urutan nilai itu penting
    • array [1,'value']tidak sama dengan['value',1]

Contoh

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

JSON Array --> [ , , , ]

{"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}
Aleksandr Panzin
sumber
4
ini adalah jawaban paling menarik dari kelompok itu
dinamis
24

Pemahaman terprogram terbaik.

ketika sintaks {}maka iniJsonObject

ketika sintaks []maka iniJsonArray

A JSONObjectadalah objek mirip JSON yang dapat direpresentasikan sebagai elemen dalam JSONArray. JSONArraydapat berisi (atau banyak)JSONObject

Semoga ini bisa membantu Anda!

Yogesh Rathi
sumber
7

Saya selalu menggunakan objek, itu lebih mudah diperpanjang, array JSON tidak. Misalnya Anda awalnya memiliki beberapa data sebagai larik json, maka Anda perlu menambahkan tajuk status di atasnya, Anda akan sedikit macet, kecuali jika Anda menyarangkan data dalam sebuah objek. Satu-satunya kelemahan adalah sedikit peningkatan dalam kompleksitas pembuatan / penguraian.

Jadi, bukan

[datum0, datum1, datumN]

Kamu akan punya

{data: [datum0, datum1, datumN]}

lalu nanti Anda bisa menambahkan lagi ...

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

Untuk memahaminya dengan lebih mudah, berikut adalah perbedaan antara objek JSON dan array JSON:

Tautan ke Perbedaan Tabular: https://i.stack.imgur.com/GIqI9.png

Array 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.

Objek 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.
SAM
sumber
Di bawah # 5 dalam larik JSON, bukankah seharusnya contoh itu berada dalam tanda kurung siku?
Mike Maxwell
Contoh itu hanya untuk menjelaskan konsepnya. Padahal saya telah mengubah contoh untuk pemahaman yang lebih baik. Terima kasih telah bertanya pada @MikeMaxwell, pertanyaan seperti Anda meningkatkan keterampilan penjelasan kami.
SAM
1

Ketika JSON dimulai dengan {} itu adalah objek Object JSON dan ketika dimulai dengan [] itu adalah Array JOSN Array

Larik JSON dapat terdiri dari satu / banyak objek dan itu disebut larik objek

Ahmed Noman
sumber
0

Saya tahu, semua jawaban sebelumnya sangat berguna untuk pertanyaan Anda. Saya terlalu menyukai Anda kebingungan ini hanya satu menit sebelum menemukan utas SO ini. Setelah membaca beberapa jawaban, inilah yang saya dapatkan: JSONObject adalah objek seperti JSON yang dapat direpresentasikan sebagai elemen dalam array, JSONArray. Dengan kata lain, JSONArray dapat berisi (atau banyak) JSONObject.

Serge Kishiko
sumber