Sau khi xem qua Google, tôi đã tìm thấy liên kết này mô tả sự khác biệt, nhưng theo quan điểm cú pháp.
Khi nào thì cái này được ưu tiên hơn cái kia trong kịch bản lập trình?
Sau khi xem qua Google, tôi đã tìm thấy liên kết này mô tả sự khác biệt, nhưng theo quan điểm cú pháp.
Khi nào thì cái này được ưu tiên hơn cái kia trong kịch bản lập trình?
Câu trả lời:
Khi bạn đang làm việc với dữ liệu JSON trong Android, bạn sẽ sử dụng JSONArray
để phân tích cú pháp JSON bắt đầu bằng dấu ngoặc mảng. Mảng trong JSON được sử dụng để tổ chức một tập hợp các mục có liên quan (Có thể là các đối tượng JSON).
Ví dụ:[{"name":"item 1"},{"name": "item2} ]
Mặt khác, bạn sẽ sử dụng JSONObject
khi xử lý JSON bắt đầu bằng dấu ngoặc nhọn. Đối tượng JSON thường được sử dụng để chứa các cặp khóa / giá trị liên quan đến một mục. Ví dụ:{"name": "item1", "description":"a JSON object"}
Tất nhiên, các mảng và đối tượng JSON có thể được lồng vào nhau. Một ví dụ phổ biến về điều này là một API trả về một đối tượng JSON chứa một số siêu dữ liệu cùng với một mảng các mục phù hợp với truy vấn của bạn:
{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
Sự khác biệt giống như (Hash) Bản đồ và Danh sách.
JSONObject:
{ID : 1}
{id: 1, name: 'B'}
bằng {name: 'B', id: 1}
.JSONArray:
[1, 'value']
[1,'value']
không giống như['value',1]
Thí dụ
JSON Object --> { "":""}
JSON Array --> [ , , , ]
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
Hiểu theo chương trình tốt nhất.
khi cú pháp là
{}
thì đây làJsonObject
khi cú pháp là
[]
thì đây làJsonArray
A JSONObject
là một đối tượng giống JSON có thể được biểu diễn như một phần tử trong JSONArray
. JSONArray
có thể chứa một (hoặc nhiều)JSONObject
Hy vọng điều này sẽ hữu ích cho bạn!
Tôi luôn sử dụng đối tượng, nó dễ dàng mở rộng hơn, mảng JSON thì không. Ví dụ, ban đầu bạn có một số dữ liệu dưới dạng mảng json, sau đó bạn cần thêm tiêu đề trạng thái vào đó, bạn sẽ gặp một chút khó khăn, trừ khi bạn lồng dữ liệu vào một đối tượng. Nhược điểm duy nhất là độ phức tạp của việc tạo / phân tích cú pháp tăng nhẹ.
Vì vậy, thay vì
[datum0, datum1, datumN]
Bạn sẽ có
{data: [datum0, datum1, datumN]}
sau đó bạn có thể bổ sung thêm ...
{status: "foo", data: [datum0, datum1, datumN]}
Để hiểu nó một cách dễ dàng hơn, sau đây là những điểm khác biệt giữa đối tượng JSON và mảng JSON:
Liên kết đến Sự khác biệt bảng: https://i.stack.imgur.com/GIqI9.png
Mảng 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.
Đối tượng 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.
Khi một JSON bắt đầu bằng {} thì nó là một đối tượng Object JSON và khi nó bắt đầu bằng [] thì nó là một Array JOSN Array
Một mảng JSON có thể bao gồm một / nhiều đối tượng và đó được gọi là một mảng các đối tượng
Tôi biết, tất cả các câu trả lời trước đây đều thấu hiểu câu hỏi của bạn. Tôi đã quá giống bạn sự nhầm lẫn này chỉ một phút trước khi tìm thấy chủ đề SO này. Sau khi đọc một số câu trả lời, đây là những gì tôi nhận được: JSONObject là một đối tượng giống JSON có thể được biểu diễn dưới dạng một phần tử trong mảng, JSONArray. Nói cách khác, một JSONArray có thể chứa một (hoặc nhiều) JSONObject.