การเปรียบเทียบ JSON และ XML [ปิด]


273

ฉันต้องการทราบว่าเร็วกว่าไหน: XML และ JSON ควรใช้อันไหนดี?


60
เร็วกว่าที่ไหน การแพร่เชื้อ? การประมวลผล? ผลิต? ทั้งคู่ไม่มีเท้าคุณรู้ มีโอกาสที่ JSON จะ "เร็วขึ้น" ในบางกรณีเนื่องจากมีค่าใช้จ่ายมาร์กอัปน้อยลง อีกด้านหนึ่ง XML มี XMLSchema เพื่อรับรองประเภทโครงสร้าง ... ดังนั้นความถูกต้อง มี XSLT ที่จะเปลี่ยน XML ในรอบเกือบรูปแบบการออกอื่น ๆ คือ ... มันขึ้นอยู่กับสิ่งที่คุณต้องการ
เฟลิกซ์กลิง

2
ตรวจสอบคำถามที่ถามบ่อยอื่น ๆ : stackoverflow.com/search?q=json+vs+xml
Felix Kling

16
BLARG! นี่คือสิ่งที่ฉันอยากรู้และดีใจมากที่มาที่นี่และคำตอบนั้นสมบูรณ์แบบ ไม่ดีต่อคุณโมเดอเรเตอร์: อาจถึงเวลาแล้วที่คุณจะต้องมีส่วนร่วม ดีสำหรับคุณที่จะให้ตอบอย่างน้อย!
Mark Gerolimatos

ฉันไม่สนใจว่าโพสต์นี้จะช้าไปมากสำหรับเกม แต่ฉันเห็นด้วย หากคำถามคือการล่อลวงไม่เกี่ยวข้องหรือขัดแย้งกับข้อกำหนดในการให้บริการบางที (เธรดที่ปิด / ไร้ประโยชน์) ไม่ควรเป็นสิ่งแรกที่เกิดขึ้นในการค้นหา (btw นี่คือผลลัพธ์ที่ [duped] ครั้งที่ 2 ที่เกิดขึ้น) ฉันยอมรับว่าบางทีคำตอบควรจะเอนเอียงและรัดกุม แต่ถ้าผลลัพธ์หลังจากผลลัพธ์คือปิดกระทู้ที่ยังไม่ได้ตอบที่เต็มไปด้วยความคิดเห็นหัวข้อปิด (ซึ่งขัดกับข้อกำหนดการใช้งาน) มันช่วยไม่มีใคร
Izaac Corbett

2
แม้ว่าคำถามที่ถามมานั้นไม่ชัดเจน แต่นี่ไม่ใช่คำถามที่อิงตามความคิดเห็น
qwr

คำตอบ:


221

ก่อนที่จะตอบเมื่อจะใช้อันใดพื้นหลังเล็กน้อย:

แก้ไข: ฉันควรพูดถึงว่าการเปรียบเทียบนี้มาจากมุมมองของการใช้งานจริงในเบราว์เซอร์ที่มี JavaScript มันไม่ได้เป็นวิธีการที่ทั้งสองรูปแบบข้อมูลที่มีที่จะใช้และมีความอุดมสมบูรณ์ของ parsers ดีซึ่งจะเปลี่ยนแปลงรายละเอียดที่จะทำให้สิ่งที่ฉันพูดไม่ถูกต้องค่อนข้าง

JSON มีทั้งขนาดกะทัดรัดและ (ในมุมมองของฉัน) อ่านได้ง่ายขึ้น - ในการส่งข้อมูลอาจ "เร็วขึ้น" เพียงเพราะถ่ายโอนข้อมูลน้อยลง

ในการแยกวิเคราะห์มันขึ้นอยู่กับโปรแกรมแยกวิเคราะห์ของคุณ โปรแกรมแยกวิเคราะห์เปลี่ยนรหัส (ไม่ว่าจะเป็น JSON หรือ XML) เป็นโครงสร้างข้อมูล (เช่นแผนที่) อาจได้รับประโยชน์จากลักษณะที่เข้มงวดของ XML ( XML Schemasทำให้โครงสร้างข้อมูลเป็นไปอย่างชัดเจน) - ใน JSON ประเภทของรายการ (String / หมายเลข / วัตถุ JSON ที่ซ้อนกัน) สามารถอนุมานได้ทางไวยากรณ์เช่น:

myJSON = {"age" : 12,
          "name" : "Danielle"}

โปรแกรมแยกวิเคราะห์ไม่จำเป็นต้องฉลาดพอที่จะรู้ว่า12ตัวเลขนั้นเป็นตัวเลข (และDanielleเป็นสตริงเหมือนกัน) ดังนั้นในจาวาสคริปต์เราสามารถทำ:

anObject = JSON.parse(myJSON);
anObject.age === 12 // True
anObject.name == "Danielle" // True
anObject.age === "12" // False

ใน XML เราต้องทำสิ่งต่อไปนี้:

<person>
    <age>12</age>
    <name>Danielle</name>
</person>

(นอกเหนือจากนี้สิ่งนี้แสดงให้เห็นว่า XML ค่อนข้างละเอียดมากขึ้นเป็นข้อกังวลสำหรับการส่งข้อมูล) หากต้องการใช้ข้อมูลนี้เราจะเรียกใช้ผ่านตัวแยกวิเคราะห์จากนั้นเราจะต้องเรียกสิ่งต่อไปนี้:

myObject = parseThatXMLPlease();
thePeople = myObject.getChildren("person");
thePerson = thePeople[0];
thePerson.getChildren("name")[0].value() == "Danielle" // True
thePerson.getChildren("age")[0].value() == "12" // True

อันที่จริงโปรแกรมแยกวิเคราะห์ที่ดีอาจพิมพ์ข้อความageให้คุณ (ในทางกลับกันคุณอาจไม่ต้องการ) สิ่งที่เกิดขึ้นเมื่อเราเข้าถึงข้อมูลนี้เป็น - แทนทำค้นหาแอตทริบิวต์เช่นในตัวอย่างข้างต้น JSON - nameเรากำลังทำค้นหาแผนที่ในกุญแจสำคัญ มันอาจง่ายกว่าที่จะสร้าง XML แบบนี้:

<person name="Danielle" age="12" />

แต่เรายังคงต้องทำการค้นหาแผนที่เพื่อเข้าถึงข้อมูลของเรา:

myObject = parseThatXMLPlease();
age = myObject.getChildren("person")[0].getAttr("age");

แก้ไข: ต้นฉบับ:

ในภาษาการเขียนโปรแกรมส่วนใหญ่ (ไม่ จำกัด ทุกอย่าง) การค้นหาแผนที่เช่นนี้จะมีค่าใช้จ่ายสูงกว่าการค้นหาแอททริบิวต์

สิ่งนี้ทำให้เข้าใจผิด: โปรดจำไว้ว่าใน JavaScript (และภาษาไดนามิกอื่น ๆ ) ไม่มีความแตกต่างระหว่างการค้นหาแผนที่และการค้นหาฟิลด์ อันที่จริงแล้วการค้นหาฟิลด์เป็นเพียงการค้นหาแผนที่

หากคุณต้องการการเปรียบเทียบที่คุ้มค่าจริง ๆ สิ่งที่ดีที่สุดคือการทำมาตรฐาน - ทำเกณฑ์มาตรฐานในบริบทที่คุณวางแผนที่จะใช้ข้อมูล

ขณะที่ฉันกำลังพิมพ์อยู่เฟลิกซ์คลิงได้รวบรวมคำตอบที่กระชับพอสมควรแล้วเปรียบเทียบกับพวกเขาในแง่ของเวลาที่จะใช้แต่ละคนดังนั้นฉันจะไม่ไปต่อไปอีก


แค่โน้ต pedantic ... การค้นหาฟิลด์ JavaScript ไม่จำเป็นต้องเป็นการค้นหาแผนที่ ขึ้นอยู่กับวัตถุและเขตข้อมูลที่มีปัญหา วัตถุขนาดเล็ก (โดยเฉพาะอย่างยิ่งที่ไม่ได้มีคุณสมบัติที่แนบมาหลังจากการก่อสร้าง) มักจะใช้ "ประเภทเร็ว" ที่เหมาะสมกับแคชแบบอินไลน์ในเครื่องยนต์ JS สมัยใหม่และถอยกลับไปที่ถุงคุณสมบัติช้าลง (การค้นหาแผนที่) สำหรับวัตถุที่มีคุณสมบัติจำนวนมากหรือ กรณีที่มีการเปลี่ยนแปลงโครงสร้างวัตถุบ่อยครั้ง
Brandon Paddock

2
ฉันพบว่า JSON นั้นง่ายกว่าสำหรับมนุษย์ในการแยกวิเคราะห์ แต่ XML ง่ายสำหรับคอมพิวเตอร์ที่จะแยก
Jus12

5
ไม่เป็นความจริงตัวอย่างเช่นใน PHP, JSON ใช้ json.so โดยไม่มีการขึ้นต่อกันที่ 78k, XML ในทางกลับกันต้องการ xml.so หรือ xmlreader.so ที่ 54k / 32k แต่ยังต้องใช้ libxml2.so ซึ่ง 1.4megs . รหัสเพิ่มเติมทำให้กระบวนการและหน่วยความจำใช้เวลานานขึ้น ไม่ต้องพูดถึง XML เนื่องจากโครงสร้างโหนด / โครงสร้างต้นไม้มีการอ้างอิงแบบวงกลมซึ่งอาจเป็นความเจ็บปวดในภาษาใด ๆ ที่ไม่มีการอ้างอิงที่อ่อนแอ ฉันพบในหลายภาษาที่ตัวแยกวิเคราะห์ XML มีขนาดใหญ่กว่า (ใช้หน่วยความจำมากขึ้นและใช้หน่วยความจำมากกว่า) กว่าตัวแยกวิเคราะห์ JSON ตัวใดตัวหนึ่ง
Rahly

เหตุใดคุณจึงผสมปัญหาสถานะที่เข้มงวดของ JS กับการเปรียบเทียบที่ไม่เกี่ยวข้องนี้ หมายถึงสัญญาณสองเท่าหรือสามเท่า
atilkan

1
@atilkan เนื่องจาก parsers หลายคนตีความสตริงตัวเลขเป็นตัวเลขหรือเก็บตัวเลขเป็นสตริงตัวเลข
mazunki

244

Fasterไม่ใช่แอตทริบิวต์ของ JSON หรือ XML หรือผลลัพธ์ที่การเปรียบเทียบระหว่างผลลัพธ์นั้นจะเกิดขึ้น ถ้ามีก็เป็นคุณสมบัติของ parsers หรือแบนด์วิดธ์ที่คุณส่งข้อมูล

นี่คือ (จุดเริ่มต้น) รายการของข้อดีและข้อเสียของ JSON และ XML:


JSON

มือโปร:

  • ไวยากรณ์อย่างง่ายซึ่งส่งผลให้ค่าใช้จ่าย "มาร์กอัป" น้อยลงเมื่อเทียบกับ XML
  • ใช้งานง่ายด้วย JavaScript เนื่องจากมาร์กอัปเป็นส่วนย่อยของสัญกรณ์ตัวอักษร JS และมีชนิดข้อมูลพื้นฐานเช่นเดียวกับ JavaScript
  • JSON Schemaสำหรับคำอธิบายและประเภทข้อมูลและการตรวจสอบโครงสร้าง
  • JsonPath สำหรับดึงข้อมูลในโครงสร้างที่ซ้อนกันอย่างล้ำลึก

Con:

  • ไวยากรณ์อย่างง่ายสนับสนุนเพียงหนึ่งประเภทข้อมูลที่แตกต่างกัน

  • ไม่รองรับความคิดเห็น


XML

มือโปร:

  • มาร์กอัปทั่วไป เป็นไปได้ที่จะสร้าง "ภาษาถิ่น" เพื่อวัตถุประสงค์ใด ๆ
  • XML Schemaสำหรับประเภทข้อมูลการตรวจสอบโครงสร้าง ทำให้เป็นไปได้ในการสร้างประเภทข้อมูลใหม่
  • XSLTสำหรับการแปลงเป็นรูปแบบผลลัพธ์ที่แตกต่างกัน
  • XPath / XQueryสำหรับการแยกข้อมูลในโครงสร้างที่ซ้อนกันอย่างลึกล้ำ
  • สร้างขึ้นเพื่อรองรับเนมสเปซ

Con:

  • ค่อนข้างเงียบเมื่อเทียบกับ JSON (ส่งผลให้มีข้อมูลมากขึ้นตามจำนวนข้อมูลที่เท่ากัน)

ดังนั้นในที่สุดคุณต้องตัดสินใจว่าคุณต้องการอะไร เห็นได้ชัดว่าทั้งสองรูปแบบมีกรณีการใช้งานที่ถูกกฎหมาย หากคุณใช้ JavaScript เป็นส่วนใหญ่คุณควรใช้ JSON

โปรดเพิ่มข้อดีและข้อเสีย ฉันไม่ใช่ผู้เชี่ยวชาญ XML;)


20
ตัวควบคุมอื่นสำหรับ JSON และ Pro สำหรับ XML: JSON ไม่สนับสนุนการอ้างอิงวัตถุ (เป็นวงจรหรือไม่) XML ทำ XML ทำเช่นนี้โดยบังคับให้idแอตทริบิวต์นั้นไม่ซ้ำกันภายในเอกสาร
Earth Engine

7
@EarthEngine จริง Json.Net ( json.codeplex.com ) ไม่สนับสนุนการอ้างอิงวัตถุ: james.newtonking.com/projects/json/help/index.html?topic=html/...
Dmitrii Lobanov

22
@DmitryLobanov: พวกเขาเพียงเพิ่มข้อ จำกัด เพิ่มเติมบางอย่างให้กับมาตรฐาน JSON แต่ไม่รู้จักเครื่องมือ JSON อื่น ๆ ดังนั้นจึงไม่ใช่ "ดั้งเดิม" สำหรับ JSON อย่างไรก็ตามสำหรับ XML ข้อ จำกัด ถูกเขียนในมาตรฐานดังนั้นจึงเป็นแบบดั้งเดิม
Earth Engine

1
JSON Schema เกี่ยวกับอะไร? en.wikipedia.org/wiki/JSON#JSON_Schema
John Doe

5
JSON มีอาร์เรย์ในตัวเช่นเดียวกับค่า "null" ขณะที่อยู่ใน XML คุณต้องมีข้อตกลงบางส่วนในตัวแยกวิเคราะห์สคีมาของคุณ นอกจากนี้ยังมีโครงการแปลงเหมือน XSLT สำหรับ JSON (เช่นgithub.com/emlynoregan/bOTLjs )
Vasyl Boroviak

22

ความเร็วในการประมวลไม่อาจจะเป็นเรื่องที่เกี่ยวข้องเท่านั้น แต่เป็นว่าเป็นคำถามที่นี่มีตัวเลขบางในเกณฑ์มาตรฐาน: JSON กับ XML: บางตัวเลขอย่างหนักเกี่ยวกับฟุ่มเฟื่อย สำหรับความเร็วในเกณฑ์มาตรฐานอย่างง่ายนี้ XML จะแสดงโอเวอร์เฮดของ JSON 21%

หมายเหตุสำคัญเกี่ยวกับความละเอียดซึ่งเป็นบทความกล่าวว่าบ่นที่พบบ่อยที่สุด: นี้ไม่เกี่ยวข้องมากในทางปฏิบัติ (ไม่ XML หรือ JSON ข้อมูลโดยทั่วไปจะมีการจัดการโดยมนุษย์ แต่โดยเครื่อง) แม้ว่าสำหรับเรื่องของ ความเร็วมันต้องใช้เวลามากพอสมควรในการบีบอัด

นอกจากนี้ในเกณฑ์มาตรฐานนี้มีการประมวลผลข้อมูลจำนวนมากและเว็บแอปพลิเคชันทั่วไปจะไม่ส่งชิ้นข้อมูลขนาดใหญ่เท่า 90MB และการบีบอัดอาจไม่เป็นประโยชน์ (สำหรับชิ้นข้อมูลที่มีขนาดเล็กเพียงพอชิ้นส่วนที่บีบอัด จะใหญ่กว่าก้อนที่ไม่บีบอัด) ดังนั้นจึงไม่สามารถใช้งานได้

อย่างไรก็ตามหากไม่มีการบีบอัดที่เกี่ยวข้อง JSON จะเห็นได้ชัดว่าจะมีน้ำหนักน้อยกว่าช่องสัญญาณส่งโดยเฉพาะถ้าส่งผ่านการเชื่อมต่อ WebSocket โดยที่การไม่มีค่าใช้จ่าย HTTP แบบดั้งเดิมอาจสร้างความแตกต่างให้กับ JSON มากยิ่งขึ้น สำคัญ

หลังจากการส่งข้อมูลจะต้องมีการใช้และนับนี้ในเวลาการประมวลผลโดยรวม หากมีการส่งข้อมูลขนาดใหญ่หรือซับซ้อนเพียงพอการตรวจสอบตัวตรวจสอบ XML ตัวตรวจสอบความถูกต้องของตัวตรวจสอบ XML โดยอัตโนมัติอาจต้องตรวจสอบเพิ่มเติมเกี่ยวกับข้อมูล JSON การตรวจสอบเหล่านี้จะต้องดำเนินการใน JavaScript ซึ่งไม่ทราบว่ารวดเร็วโดยเฉพาะและดังนั้นจึงอาจแสดงโอเวอร์เฮดเพิ่มเติมผ่าน XML ในกรณีดังกล่าว

อย่างไรก็ตามการทดสอบเท่านั้นที่จะให้คำตอบสำหรับกรณีการใช้งานของคุณโดยเฉพาะ (ถ้าความเร็วเป็นเรื่องจริงเท่านั้นไม่ใช่มาตรฐานหรือความปลอดภัยหรือความสมบูรณ์ ... )

อัปเดต 1: ควรกล่าวถึงคือ EXI ซึ่งเป็นรูปแบบไบนารี XML ซึ่งมีการบีบอัดที่ต้นทุนต่ำกว่าการใช้ Gzip และบันทึกการประมวลผลที่จำเป็นในการคลายบีบอัด XML EXI คือ XML สิ่งที่ BSON คือ JSON มีภาพรวมอย่างรวดเร็วที่นี่มีการอ้างอิงถึงประสิทธิภาพในพื้นที่และเวลา: EXI: มาตรฐานไบนารีสุดท้ายหรือไม่ .

การปรับปรุงที่ 2: นอกจากนั้นยังมีรายงานการปฏิบัติงาน XML ไบนารีดำเนินการโดย W3C ในขณะที่ประสิทธิภาพและหน่วยความจำต่ำและการปล่อยก๊าซ CPU ยังเป็นเรื่องของพื้นที่ XML ที่มากเกินไป: มีประสิทธิภาพ XML แลกประเมินผล

อัปเดต 2015-03-01

คุ้มค่าที่จะสังเกตเห็นในบริบทนี้เช่น HTTP ค่าใช้จ่ายถูกยกขึ้นเป็นปัญหาที่: IANA ได้จดทะเบียนการเข้ารหัส EXI นี้ (XML ไบนารีที่มีประสิทธิภาพดังกล่าวข้างต้น) เช่น AA เนื้อหาการเข้ารหัสสำหรับโปรโตคอล HTTP (ใกล้กับการบีบอัด , ยุบและgzip ) . ซึ่งหมายความว่า EXI เป็นตัวเลือกที่คาดว่าเบราว์เซอร์สามารถเข้าใจได้ในไคลเอนต์ HTTP อื่น ๆ ดูHypertext Transfer Protocol พารามิเตอร์ (iana.org)


"สำหรับความเร็วในการวัดประสิทธิภาพแบบง่าย XML แสดงค่าใช้จ่าย 21% เหนือ JSON" - มีความแตกต่างอย่างมากในการแยกวิเคราะห์ JSON ขึ้นอยู่กับตัวแยกวิเคราะห์เฉพาะที่ใช้ แทบไม่มีความหมายเลยที่จะพูดถึง parser ใด ๆ เหมือนกันสำหรับ XML
Jeffrey Blattman

17

ฉันพบบทความนี้ที่ตลาดสดดิจิตอลน่าสนใจจริงๆ การอ้างอิงข้อความของพวกเขาจากบรรทัดฐาน:

เกี่ยวกับข้อดีของ JSON:

หากสิ่งที่คุณต้องการผ่านคือค่าอะตอมมิกหรือรายการหรือแฮชของค่าอะตอมมิน JSON มีข้อดีหลายอย่างของ XML: มันสามารถใช้งานได้อย่างตรงไปตรงมาบนอินเทอร์เน็ตรองรับแอพพลิเคชั่นที่หลากหลาย มันมีคุณสมบัติเสริมบางอย่างมันเป็นมนุษย์ที่ชัดเจนและสมเหตุสมผลการออกแบบมันเป็นทางการและรัดกุมเอกสาร JSON นั้นง่ายต่อการสร้างและใช้ Unicode ...

เกี่ยวกับข้อดี XML:

XML จัดการได้ดีอย่างน่าทึ่งด้วยความสมบูรณ์ของข้อมูลที่ไม่มีโครงสร้าง ฉันไม่กังวลเกี่ยวกับอนาคตของ XML เลยแม้ว่าการตายของมันจะได้รับการเฉลิมฉลองอย่างสนุกสนานจากกลุ่มนักออกแบบเว็บ API

และฉันไม่สามารถต้านทานการเหน็บ "ฉันบอกคุณแล้ว!" โทเค็นในโต๊ะของฉัน ฉันหวังว่าจะเห็นสิ่งที่คน JSON ทำเมื่อพวกเขาถูกขอให้พัฒนา API ยิ่งขึ้น เมื่อพวกเขาต้องการแลกเปลี่ยนข้อมูลที่มีโครงสร้างน้อยกว่าพวกเขาจะใช้มันเป็น JSON หรือไม่ ฉันเห็นการพูดถึงสคีมาเป็นครั้งคราวสำหรับ JSON ภาษาอื่น ๆ จะตามมาหรือไม่ ...

ฉันเห็นด้วยกับนอร์ม ฉันคิดว่าการโจมตี XML ส่วนใหญ่มาจากนักพัฒนาเว็บสำหรับแอปพลิเคชันทั่วไปไม่ใช่จากนักพัฒนาการรวมระบบจริงๆ แต่นั่นเป็นความคิดเห็นของฉัน! ;)


ใส่กัน! หาก 80% ของ devs ที่ใช้งานเป็น kiddies จาวาสคริปต์ 80% จะแสดงความคิดเห็นว่า JSON นั้น "ดีกว่า" แต่ทุกคนที่ใช้ภาษาที่พิมพ์จะสนุกกับ JSON เพียงเล็กน้อย { "foo": 42 }วัตถุประเภทใด { "__type": "Bar", "foo": 42 }จากนั้นในการแก้ไขปัญหาการขาดชนิดต่างๆเช่นการแสดงนี้ขึ้น: ในรูปแบบ XML ในรูปแบบความคมชัดสามารถ connotated <Bar><foo>42</foo></Bar>ไปที่ชื่อธาตุ: เฉพาะ lisp และ javascript เท่านั้นเช่น json;)
BitTickler

15

XML (Extensible Markup Language) มักจะใช้ XHR เพราะนี่เป็นภาษาออกอากาศมาตรฐานสิ่งที่สามารถใช้กับภาษาการเขียนโปรแกรมใดก็ได้และสนับสนุนทั้งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ดังนั้นนี่จึงเป็นโซลูชันที่ยืดหยุ่นที่สุด XML สามารถแยกส่วนเพิ่มเติมเพื่อให้กลุ่มที่ระบุสามารถพัฒนาส่วนของโปรแกรมโดยไม่ส่งผลกระทบต่อส่วนอื่น ๆ รูปแบบ XML สามารถกำหนดได้โดย XML DTD หรือ XML Schema (XSL) และสามารถทดสอบได้

รูปแบบการแลกเปลี่ยนข้อมูล JSON ซึ่งกำลังได้รับความนิยมมากขึ้นเนื่องจากรูปแบบแอปพลิเคชัน JavaScript ที่เป็นไปได้ โดยทั่วไปนี่เป็นอาร์เรย์ของวัตถุ JSON มีไวยากรณ์ที่ง่ายมากเพื่อให้สามารถเรียนรู้ได้ง่าย และยังรองรับ JavaScript ที่แยกวิเคราะห์ JSON ด้วยevalฟังก์ชั่น ในทางกลับกันevalฟังก์ชั่นได้รับเชิงลบ ตัวอย่างเช่นโปรแกรมสามารถแยกวิเคราะห์ JSON ช้ามากและเนื่องจากความปลอดภัยโปรแกรมevalอาจมีความเสี่ยงมาก นี่ไม่ได้หมายความว่า JSON ไม่ดีแค่เราต้องระวังให้มากขึ้น

คำแนะนำของฉันคือคุณควรใช้ JSON สำหรับแอปพลิเคชันที่มีการแลกเปลี่ยนข้อมูลแบบเบาเช่นเกม เนื่องจากคุณไม่ต้องกังวลกับการประมวลผลข้อมูลจึงง่ายและรวดเร็วมาก

XML เหมาะที่สุดสำหรับเว็บไซต์ขนาดใหญ่เช่นเว็บไซต์ช็อปปิ้งหรืออะไรทำนองนี้ XML นั้นมีความปลอดภัยและชัดเจนยิ่งขึ้น คุณสามารถสร้าง data-struct พื้นฐานและ schema เพื่อทดสอบการแก้ไขและแยกออกเป็นส่วน ๆ ได้อย่างง่ายดาย

ฉันแนะนำให้คุณใช้ XML เพราะความเร็วและความปลอดภัย แต่ JSON สำหรับสิ่งที่มีน้ำหนักเบา


ฉันไม่ได้ downvoting แต่ฉันสงสัยว่าคุณเห็น JSON ว่าเป็นภาระหนักหรือช้ากว่าโดยทั่วไป สามารถใช้ GZip / Deflate ได้ มันเป็นไวยากรณ์โดยเนื้อแท้ทำให้มีขนาดเล็กลงในรูปของไบต์ JSON ยังสามารถกำหนด schema ของมันเป็นสัญญาและต่อเนื่องได้อย่างง่ายดาย
Anthony Mason

JSON ไม่จำเป็นต้องถูกวิเคราะห์แยกวิเคราะห์
Yay295

7

สิ่งสำคัญเกี่ยวกับ JSON คือการเข้ารหัสการถ่ายโอนข้อมูลด้วยเหตุผลด้านความปลอดภัย ไม่ต้องสงสัยเลยว่า JSON นั้นเร็วกว่า XML มากเพียงใด ฉันเห็นว่า XML ใช้เวลา 100 มิลลิวินาทีโดยที่ JSON ใช้เวลาเพียง 60 มิลลิวินาทีเท่านั้น ข้อมูล JSON นั้นง่ายต่อการจัดการ


5
ฉันเห็นด้วย JSON ชนะการต่อสู้ในการถ่ายโอนข้อมูล แต่ขาดมาร์กอัปการตรวจสอบความถูกต้องและการขยายองค์ประกอบ นั่นคือเหตุผลที่ Google รวบรวมข้อมูล sitemap.xml ไม่ใช่ sitemap.json
Chetabahana

1
Sitemap ถูกกำหนดไว้ก่อน json เป็นที่นิยมดังนั้นจึงไม่ใช่ตัวอย่างที่ดีที่สุด แผนผังไซต์นั้นถูกมองว่าเป็นเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์โดยที่ XML นั้นเป็นที่นิยมมากกว่า JSON (JSON จริงๆเท่านั้นเพราะเป็นที่นิยมเพราะมันใช้งานง่ายใน JavaScript)
Matthew Whited

แต่ Google AMP ใช้ json และไม่ใช่ xml
Ashraf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.