หลังจากดู Google สั้น ๆ ฉันพบลิงก์นี้ซึ่งอธิบายความแตกต่าง แต่มาจากมุมมองของไวยากรณ์
เมื่อใดที่จะเป็นที่ต้องการมากกว่าอีกฝ่ายในสถานการณ์การเขียนโปรแกรม
หลังจากดู Google สั้น ๆ ฉันพบลิงก์นี้ซึ่งอธิบายความแตกต่าง แต่มาจากมุมมองของไวยากรณ์
เมื่อใดที่จะเป็นที่ต้องการมากกว่าอีกฝ่ายในสถานการณ์การเขียนโปรแกรม
คำตอบ:
เมื่อคุณทำงานกับข้อมูล JSON ใน Android คุณจะใช้JSONArray
เพื่อแยกวิเคราะห์ JSON ซึ่งเริ่มต้นด้วยวงเล็บอาร์เรย์ อาร์เรย์ใน JSON ใช้เพื่อจัดระเบียบคอลเล็กชันของรายการที่เกี่ยวข้อง (ซึ่งอาจเป็นออบเจ็กต์ JSON)
ตัวอย่างเช่น:[{"name":"item 1"},{"name": "item2} ]
ในทางกลับกันคุณจะใช้JSONObject
เมื่อจัดการกับ JSON ที่ขึ้นต้นด้วยวงเล็บปีกกา โดยทั่วไปออบเจ็กต์ JSON จะใช้เพื่อมีคู่คีย์ / ค่าที่เกี่ยวข้องกับรายการเดียว ตัวอย่างเช่น:{"name": "item1", "description":"a JSON object"}
แน่นอนอาร์เรย์ JSON และวัตถุอาจซ้อนกันอยู่ภายใน ตัวอย่างทั่วไปอย่างหนึ่งของสิ่งนี้คือ API ที่ส่งคืนออบเจ็กต์ JSON ที่มีข้อมูลเมตาบางส่วนควบคู่ไปกับอาร์เรย์ของรายการที่ตรงกับข้อความค้นหาของคุณ:
{"startIndex": 0, "data": [{"name":"item 1"},{"name": "item2"} ]}
ความแตกต่างจะเหมือนกับแผนที่ (แฮช) เทียบกับรายการ
JSONObject:
{ID : 1}
{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
สามารถมี (หรือหลายตัว)JSONObject
หวังว่านี่จะเป็นประโยชน์กับคุณ!
ฉันใช้ออบเจ็กต์เสมอมันขยายได้ง่ายกว่าอาร์เรย์ JSON ไม่ใช่ ตัวอย่างเช่นเดิมทีคุณมีข้อมูลบางส่วนเป็นอาร์เรย์ json จากนั้นคุณต้องเพิ่มส่วนหัวสถานะคุณจะติดขัดเล็กน้อยเว้นแต่คุณจะซ้อนข้อมูลไว้ในวัตถุ ข้อเสียเพียงอย่างเดียวคือความซับซ้อนของการสร้าง / การแยกวิเคราะห์ที่เพิ่มขึ้นเล็กน้อย
ดังนั้นแทนที่จะเป็น
[datum0, datum1, datumN]
คุณจะมี
{data: [datum0, datum1, datumN]}
หลังจากนั้นคุณสามารถเพิ่มได้อีก ...
{status: "foo", data: [datum0, datum1, datumN]}
เพื่อให้เข้าใจได้ง่ายขึ้นความแตกต่างระหว่างออบเจ็กต์ JSON และอาร์เรย์ JSON มีดังนี้
ลิงก์ไปยัง Tabular Difference: 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: ["Ford","BMW","Fiat"] is not
equal to ["Fiat","BMW","Ford"]
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.
เมื่อ JSON เริ่มต้นด้วย {} จะเป็น Object JSON และเมื่อเริ่มต้นด้วย [] จะเป็น Array JOSN Array
อาร์เรย์ JSON สามารถประกอบด้วย / หลายวัตถุและเรียกว่าอาร์เรย์ของวัตถุ
ฉันรู้ว่าคำตอบก่อนหน้านี้ทั้งหมดเป็นข้อมูลเชิงลึกสำหรับคำถามของคุณ ฉันชอบคุณมากเกินไปความสับสนนี้เพียงหนึ่งนาทีก่อนที่จะพบกระทู้ SO หลังจากอ่านคำตอบบางส่วนนี่คือสิ่งที่ฉันได้รับ: JSONObject เป็นวัตถุคล้าย JSON ที่สามารถแสดงเป็นองค์ประกอบในอาร์เรย์ JSONArray กล่าวอีกนัยหนึ่ง JSONArray สามารถมี JSONObject (หรือหลายอัน)
การใช้งานทั้งสองอย่างขึ้นอยู่กับโครงสร้างของข้อมูลของคุณ
คุณสามารถใช้วิธีการซ้อนวัตถุได้หากคุณวางแผนที่จะให้ความสำคัญกับตัวระบุที่ไม่ซ้ำกันเช่นคีย์หลัก
เช่น:
{
"Employees" : {
"001" : {
"Name" : "Alan",
"Children" : ["Walker", "Dua", "Lipa"]
},
"002" : {
"Name" : "Ezio",
"Children" : ["Kenvey", "Connor", "Edward"]
}
}
หรือใช้แนวทางแรกของ Arrayหากคุณต้องการจัดเก็บชุดของค่าโดยไม่จำเป็นต้องระบุไม่ซ้ำกัน
เช่น:
[
{
"Employees":[
{
"Name" : "Alan",
"Children" : ["Walker", "Dua", "Lipa"]
},
{
"Name" : "Ezio",
"Children" : ["Kenvey", "Connor", "Edward"]
}
]
}
]
แม้ว่าคุณจะสามารถใช้วิธีที่สองกับตัวระบุได้ แต่การสืบค้นและทำความเข้าใจในบางสถานการณ์อาจทำได้ยากหรือซับซ้อนเกินไป ขึ้นอยู่กับฐานข้อมูลอาจต้องใช้แนวทางที่เหมาะสม เช่นMongoDB / Firebase