เมื่อใดที่จะชอบ JSON มากกว่า XML


148

ความต้องการของฉันเป็นเพียงการแสดงชุดของค่าที่ดึงมาจากฐานข้อมูลในการแพร่กระจาย ฉันกำลังใช้ jQuery

คำตอบ:


149

ชอบ XML บน JSON เมื่อสิ่งเหล่านี้เป็นจริง:

  • คุณต้องมีการตรวจสอบข้อความ
  • คุณกำลังใช้ XSLT
  • ข้อความของคุณมีข้อความที่ทำเครื่องหมายไว้จำนวนมาก
  • คุณต้องทำงานร่วมกับสภาพแวดล้อมที่ไม่สนับสนุน JSON

ชอบ JSON ผ่าน XML เมื่อสิ่งเหล่านี้เป็นจริง:

  • ข้อความไม่จำเป็นต้องได้รับการตรวจสอบความถูกต้องหรือการตรวจสอบความถูกต้อง
  • คุณไม่ได้เปลี่ยนข้อความหรือเปลี่ยนการดีซีเรียลไลเซชันเป็นเรื่องง่าย
  • ข้อความของคุณส่วนใหญ่เป็นข้อมูลไม่ใช่ข้อความที่มีการทำเครื่องหมาย
  • จุดสิ้นสุดการรับส่งข้อความมีเครื่องมือ JSON ที่ดี

9
JSON ไม่มีข้อได้เปรียบเหนือ XML ในการจัดการข้อความที่ถูกทำเครื่องหมาย แต่ฉันเห็นประเด็นของคุณ ที่อาจคุยโว
— Robert Rossney

10
เมื่อเงื่อนไขทั้งหมดเท่ากันให้ใช้ JSON ด้วยเหตุผลสองประการ: JSON เบากว่าการแยกวิเคราะห์มากกว่า XML (เป็นมิตรกับ CPU) และต้องการถ่ายโอนข้อมูลน้อยลงมาก (รองรับเครือข่าย)
— Roger Barreto

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

ฉันไม่เห็นด้วยอย่างยิ่งกับส่วนการตรวจสอบใน JSON JSON สามารถตรวจสอบได้ ตรวจสอบร่าง IETF นี้: การเชื่อมโยง มันเป็นร่าง แต่ยังคง ..
— sotn

@sotn คุณยังไม่ได้รับ PL / SQL สำหรับ JSON เช่นเดียวกับ XML (เช่น XQuery) มันเป็นฐานสำหรับ NoSQL DB (eXist, เซิร์ฟเวอร์ MarkLogic, EMC Documentum xDB, BaseX, Zorba)
— Dmytro Melnychuk

81

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

เมื่อ Amazon เปิดเผยแคตตาล็อกเป็นครั้งแรกในฐานะบริการเว็บพวกเขาเสนอทั้ง JSON และ XML ผู้ใช้ 90% เลือก JSON


56
"ฉันใช้ JSON ยกเว้นว่าฉันจำเป็นต้องใช้ XML" ~ แน่นอน
— EndangeredMassa

2
ดังนั้นคำถามที่ลึกกว่าคือ "คุณจะต้องใช้ XML ด้วยเหตุผลอะไร?" เป็นเหตุผลที่งี่เง่า; หรือพวกเขาเพียงแค่สะท้อนความกังวลต่าง ๆ จากมุมมองที่แตกต่างจากคุณ?
— 13ren

5
สาเหตุที่เป็นไปได้หลายประการรวมถึงซอฟต์แวร์ที่มีอยู่ฉันไม่ต้องการเขียนซ้ำ แต่ที่สำคัญที่สุดคือการใช้ XML เป็นรูปแบบการแลกเปลี่ยนข้อมูลที่ฉันไม่ได้ควบคุมปลายทั้งสองหรือมีมาตรฐานอย่างเป็นทางการที่ใช้และต้องใช้ XML ฉันสามารถเลือกได้เองเมื่อฉันเป็นผู้พัฒนาเท่านั้นที่เกี่ยวข้อง
— dkretz

15

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

  • เนื่องจาก JSON เป็นภาษาจาวาสคริปต์คุณต้องเขียนโค้ดให้น้อยลงในฝั่งไคลเอ็นต์ - เพียงแค่ eval() (หรือยังดีกว่าJSON.parse()) สตริง JSON และรับวัตถุที่คุณสามารถใช้ได้

  • ในขณะเดียวกันการประเมิน JSON บนฝั่งไคลเอ็นต์จะมีประสิทธิภาพมากขึ้นและเร็วขึ้น

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

นี่คือการอ่านเพิ่มเติม: http://www.subbu.org/blog/2006/08/json-vs-xml


7
eval()JSON นั้นไม่ใช่เรื่องใหญ่อะไรเลยใช่ไหม?
— shoosh

@Shy เว็บไซต์ของ JSON กล่าวว่าคุณสามารถใช้ eval บน JSON (โดยมีวงเล็บล้อมรอบ): json.org/js.html
— strager

9
นำมาจาก json.org: ฟังก์ชั่น eval นั้นรวดเร็วมาก อย่างไรก็ตามมันสามารถรวบรวมและรันโปรแกรมจาวาสคริปต์ใด ๆ ดังนั้นจึงอาจมีปัญหาด้านความปลอดภัย การใช้ eval จะถูกระบุเมื่อแหล่งที่เชื่อถือได้และมีความสามารถ มันปลอดภัยกว่ามากที่จะใช้ตัวแยกวิเคราะห์ JSON
— sarego

2
ต้องการ JSON.parse () ถึง eval ()
— Havvy

14

บางสิ่งอื่น ๆ ที่ฉันพบใน XML vs JSON relm:

JSON ดีมากสำหรับ

  • คู่ชื่อ / ค่า
  • ทำรังคู่เหล่านั้น

ซึ่งหมายความว่ามันมีแนวโน้มที่จะชอบอาร์เรย์หรืออาร์เรย์ที่ซ้อนกัน อย่างไรก็ตาม JSON หายไปทั้งคู่

  • คุณลักษณะ
  • namespacing

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


ปัญหาของ Json ก็คือคุณไม่สามารถรวมข้อความ json สองข้อความได้อย่างง่ายดายเพื่อสร้างข้อความ json ใหม่ โดยปกติแล้วจะไม่ได้รับการตอบรับดี ..
— vtd-xml-author

7
คุณต้องการคุณลักษณะอะไร หากองค์ประกอบของคุณมีค่าอื่น ๆ ให้มันเป็นวัตถุ - สมาชิกเป็น "แอตทริบิวต์" ของคุณ ตรงไปตรงมาฉันคิดว่าคุณสมบัติ bifurcal / โครงสร้างภาชนะของ XML เป็นอันตรายทั้งหมด
— foo

ฉันขอยืนยันว่า JSON ที่ไม่มีคุณลักษณะเป็นคุณลักษณะ
— ไบรอัน

11

โดยปกติแล้ว JSON จะกะทัดรัดกว่าและเร็วกว่าในการแยกวิเคราะห์

ต้องการ XML ถ้า:

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

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

โดยปกติแล้วในกรณี AHAH CSS จะถูกใช้ประโยชน์สูงสุดในการนวดตัวอย่างด้วยสายตาและใช้เงื่อนไขง่ายๆเช่นการซ่อน / แสดงส่วนที่เกี่ยวข้องของตัวอย่างโดยใช้การตั้งค่าเฉพาะของผู้ใช้หรือเฉพาะแอปพลิเคชัน


8

JSON ง่ายต่อการแยกวิเคราะห์ XML นั้นยากต่อการแยกวิเคราะห์เล็กน้อยและช้ากว่าในการแยกวิเคราะห์และถ่ายโอน (ในกรณีส่วนใหญ่)

เนื่องจากคุณใช้ jQuery ฉันแนะนำให้ใช้ JSON: jQuery สามารถเรียกคืนข้อมูล JSON และแปลงเป็นวัตถุ Javascript โดยอัตโนมัติ ในความเป็นจริงคุณสามารถแปลงข้อมูล JSON เป็น Javascript วัตถุโดยใช้ EVAL คุณจะต้องข้าม XML ด้วยตนเอง (ฉันไม่ทราบวิธีการทำงานใน Javascript แต่มันยาก / น่ารำคาญกว่าในภาษาส่วนใหญ่ที่ฉันเคยใช้ห้องสมุด XML ด้วย)


1
JSON เป็นวัตถุ JavaScript ที่นิยาม jQuery ไม่ได้ทำอะไรเป็นพิเศษ "แปลง" แค่คิดว่ามันควรจะชี้แจง
— Brian Gianforcaro

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

@Gianforcaro ฉันตระหนักถึงสิ่งนี้ ฉันจะแก้ไขโพสต์ของฉันให้ชัดเจนยิ่งขึ้น @doofledorfer ฉันพูดว่า "และแปลงเป็นวัตถุ Javascript" ฉันไม่ได้บอกว่าข้อมูล JSON เป็นวัตถุ Javascript
— แปลกหน้า

ขอโทษด้วยที่ไม่เข้าใจ
— แปลกหน้า

8

JSON เป็นที่นิยมมากกว่าในแง่ของการประมวลผลที่ไคลเอ็นต์เบราว์เซอร์ต้องทำเพื่อวิเคราะห์ข้อมูล นอกจากนี้ JSON ยังเป็นรูปแบบการแลกเปลี่ยนข้อมูลที่มีน้ำหนักเบา

การแยกวิเคราะห์ XML ใช้ทรัพยากรเบราว์เซอร์เป็นจำนวนมากเสมอและควรหลีกเลี่ยงให้มากที่สุดเท่าที่จะทำได้


7

ฉันมีโพสต์บล็อกเกี่ยวกับรายละเอียดประวัติของเว็บโปรโตคอล (เช่น SOAP, XML, JSON, REST, POX และอื่น ๆ ) ให้ข้อมูลสรุปรวมถึงข้อดีและข้อเสียของแต่ละข้อ: http://www.servicestack.net / mythz_blog /? p = 154

ฉันคิดว่าคุณสามารถวาดความคล้ายคลึงกันจำนวนมากระหว่าง XML และ JSON โดยการเปรียบเทียบความแตกต่างระหว่างภาษาแบบไดนามิก (JSON) และแบบคงที่ (XML)

โดยทั่วไป XML เป็นรูปแบบการจัดลำดับที่เข้มงวดและเข้มงวดยิ่งขึ้นซึ่งสามารถเลือกที่จะตรวจสอบกับสคีมาประกอบ (ซึ่งเป็น XSD หรือ DTD) XSD นั้นค่อนข้างละเอียดและช่วยให้คุณสามารถอธิบายประเภทต่าง ๆ ได้เช่นวันที่, เวลา, การนับ, ประเภทที่ผู้ใช้กำหนดและแม้กระทั่งการสืบทอดประเภท ฯลฯ SOAP จะสร้างบนคุณลักษณะ XML ที่กำหนดไว้อย่างมีประสิทธิภาพซึ่งเป็นวิธีมาตรฐานในการอธิบายบริการเว็บของคุณ เช่นประเภทและการทำงาน) ผ่าน WSDL ความละเอียดและความซับซ้อนของข้อมูลจำเพาะของ WSDL นั้นทำให้คุณน่าเบื่อมากขึ้นในการพัฒนา แต่ในขณะเดียวกันก็มีเครื่องมือให้คุณใช้มากขึ้นและภาษาที่ทันสมัยส่วนใหญ่ก็มีเครื่องมืออัตโนมัติเพื่อสร้างลูกค้าของคุณที่รับภาระ ปิดเมื่อพยายามทำงานร่วมกับบริการภายนอก

ฉันยังคงแนะนำให้ใช้ XML สำหรับบริการเว็บของคุณหากคุณมี 'บริการขององค์กร' ที่กำหนดไว้อย่างดีซึ่งไม่ได้เปลี่ยนแปลงบ่อยนักหรือบริการเว็บของคุณต้องเข้าถึงได้จากหลายภาษา

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

ในทางตรงกันข้าม JSON นั้นตรงกันข้ามกับ XML ในหลาย ๆ ทางเนื่องจากมีการพิมพ์แบบหลวม ๆ และมีการสนับสนุนประเภทพื้นฐานอย่างง่าย ๆ : Number, Bool, string, Objects และ Array ทุกอย่างอื่นเป็นหลักจะต้องพอดีกับสตริง สิ่งนี้ไม่ดีเมื่อพยายามสื่อสารข้ามขอบเขตภาษาเนื่องจากคุณจะต้องปฏิบัติตามข้อกำหนดที่ไม่ได้มาตรฐานหากคุณต้องการสนับสนุนประเภทที่เฉพาะเจาะจงมากขึ้น ด้านบนของชุดคุณลักษณะที่ จำกัด ทำให้เหมาะกับการเขียนโปรแกรมที่ดีสำหรับภาษาส่วนใหญ่ - และเหมาะอย่างยิ่งสำหรับ JavaScript เนื่องจากสตริง JSON สามารถประเมินได้โดยตรงในวัตถุ JavaScript

ขนาดและประสิทธิภาพ

ฉันมีเกณฑ์มาตรฐานฐานข้อมูลนอร์ ธ วินด์บางตัวเปรียบเทียบขนาดและความเร็วระหว่างการใช้งาน Microsofts XML และ JSON โดยทั่วไป XML นั้นมีขนาดใหญ่กว่า 2x ของ JSON แต่ในขณะเดียวกันก็ดูเหมือนว่า Microsoft พยายามอย่างมากในการปรับแต่ง XML DataContractSerializer ให้เหมาะสมเนื่องจากมันเร็วกว่า JSON มากกว่า 30% ดูเหมือนว่าคุณจะต้องทำการแลกเปลี่ยนระหว่างขนาดและรอบการแสดง ไม่มีความสุขกับความจริงนี้ฉันตัดสินใจที่จะเขียนJsonSerializer ที่รวดเร็วของตัวเองซึ่งตอนนี้ 2.6x เร็วกว่าแล้วจึงเป็น XML ของ MS - ดีที่สุดสำหรับทั้งสองโลก :)


6

ฉันจะเลือก XML ผ่าน JSON ถ้าฉันต้องการตรวจสอบความถูกต้องของข้อมูลที่เข้ามาเพราะ XML รองรับสิ่งนี้ผ่าน XSD


3

จาก JSON - เท้าสุดท้าย

เมื่อคุณลงเส้นทาง JSON คุณพบปัญหาเดียวกันกับที่ XML เผชิญเมื่อ 10 ปีที่แล้ว:

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

การแปลงระหว่างโครงสร้าง JSON ที่แตกต่างกันจะต้องมีการเขียนรหัสทางโลก วิธีการประกาศข้อมูลแผนที่ที่ชัดเจนยิ่งขึ้นจะทำให้งานง่ายขึ้น นั่นเป็นเหตุผลที่ XML มี XSLT

การอธิบายโครงสร้างของแพ็คเก็ต JSON - ฟิลด์, ชนิดข้อมูล, ฯลฯ - มีความจำเป็นเพื่อให้ผู้ใช้เชื่อมต่อกับบริการของคุณ จำเป็นต้องมีภาษาเมตาดาต้าสำหรับสิ่งนี้ นั่นเป็นเหตุผลที่ XML มี Schemas

การดำเนินการสนทนาลูกค้า - เซิร์ฟเวอร์พร้อมกันสองครั้งจะดูแล หากคุณถามคำถามสองข้อกับเซิร์ฟเวอร์และรับคำตอบกลับหนึ่งข้อคุณจะรู้ได้อย่างไรว่าคำถามนั้นตอบได้อย่างไร นั่นเป็นเหตุผลที่มี XML WS-ความสัมพันธ์


2
Namespaces เป็นเพียงวิธีแก้ปัญหาอื่น คุณสามารถทำสิ่งเดียวกันใน JSON ได้ถ้าคุณต้องการ WS-Correlation ก็ถูกเพิ่มเข้ามาภายหลังเป็น XML และไม่ใช่ "มีอยู่แล้ว" คุณสามารถเพิ่มลงใน JSON ได้เช่นกัน คำอธิบายโครงสร้าง (Schemas) ไม่ได้เป็นพิเศษสำหรับ XML; คุณสามารถทำได้หลายวิธีในการใช้ภาษาทางการตั้งแต่การประดิษฐ์ eBNF XSLT เป็นจุดขายที่ถูกต้องแม้ว่า
— foo

2

JSON เป็นการเข้ารหัสแบบเนทีฟสำหรับ javascript มันควรจะเร็วกว่าและง่ายกว่าที่จะทำงานด้วย


2

จากบรรทัดแรกที่http://json.org/xml.html

Extensible Markup Language (XML) เป็นรูปแบบข้อความที่ได้มาจาก Standard Generalized Markup Language (SGML) เมื่อเทียบกับ SGML แล้ว XML นั้นง่าย HyperText Markup Language (HTML) โดยเปรียบเทียบนั้นง่ายกว่ามาก ถึงกระนั้นหนังสืออ้างอิงที่ดีใน HTML ก็ยังหนาอยู่ เนื่องจากการจัดรูปแบบและโครงสร้างของเอกสารเป็นธุรกิจที่ซับซ้อน . . .

เห็นได้ชัดว่า JSON เร็วขึ้น แต่ก็ชัดเจนยิ่งขึ้นว่าอ่านยาก ใช้ JSON สำหรับความเร็วใช้ XML หากมีการโต้ตอบกับมนุษย์และคุณสามารถเสียสละความเร็วได้


2
คำตอบของคุณไม่ได้นำข้อมูลใหม่ใด ๆ ... แต่ฉันคิดว่ามันยังคงเป็นจริง

1

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


1

Microsoft รองรับทั้ง XML และ JSON ตัวอักษร XML เป็นคุณสมบัติใหม่ที่ยอดเยี่ยมใน VB 9 ในเวอร์ชั่นที่กำลังจะมาของ ASP.NET 4.0 JSON นั้นเป็นสิ่งที่ต้องเพิ่มขีดความสามารถของเทมเพลตฝั่งไคลเอ็นต์

จากคำถามที่คุณถามดูเหมือนว่า JSON อาจเป็นทางเลือกสำหรับคุณเนื่องจากง่ายต่อการประมวลผลทางฝั่งไคลเอ็นต์โดยมีหรือไม่มี jQuery


1

ใช้ JSON

  • หากข้อมูลจะถูกใช้โดย JavaScript ในเบราว์เซอร์
  • ตัวแบบข้อมูลนั้นง่ายและไม่ซับซ้อน (มีวัตถุประกอบมากเกินไป)

ใช้ XML

  • ส่วนใหญ่อยู่ในสภาพแวดล้อมแบบ SOA ที่คุณกำลังรวมบริการต่าง ๆ ไว้บนแพลตฟอร์มและเทคโนโลยีที่แตกต่างกัน
  • SOAP มีข้อได้เปรียบที่สามารถส่งผ่านโปรโตคอลอื่น ๆ แล้ว HTTP
  • ใช้งานง่ายในเครื่องมือเปลี่ยนรูปแบบข้อมูลเช่น XSLT, XSL-FO เป็นต้น
  • รองรับฐานข้อมูลจำนวนมากเพื่อจัดเก็บ / สืบค้นข้อมูล XML (XQuery)
  • XML เป็นรูปแบบข้อมูลที่สมบูรณ์มากดังนั้นคุณจะพบเครื่องมือมากมายที่จะรองรับกรณีการใช้งานใด ๆ ที่คุณนึกออก

1

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

บางส่วนจากบทความที่ยกมาด้านล่าง

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

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

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

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

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


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

1

กฎด่วน:

  • JSON:รูปแบบข้อมูลระหว่างโปรแกรมกับโปรแกรม
  • YAML (JSON superset):รูปแบบข้อมูลมนุษย์สู่โปรแกรม
  • XML:รูปแบบมาร์กอัปเอกสาร

คำอธิบาย:

บทบาท แต่เพียงผู้เดียว JSON เป็นข้อมูลเชิงวัตถุอันดับโดยใช้ชนิดข้อมูลร่วมกันให้มากที่สุดการเขียนโปรแกรมภาษา: รายการ , แฮชและสเกลาและเพื่อวัตถุประสงค์ที่จริงๆมันไม่สามารถตีหรือปรับปรุงให้ดีขึ้น หากต้องการใช้ "JSON ไม่มีหมายเลขเวอร์ชัน [เนื่องจาก] คาดว่าจะไม่มีการแก้ไขไวยากรณ์ JSON" - Douglas Crockford (ไม่สามารถเอาชนะได้ว่าเป็นสัญญาณว่าคุณทำงานของคุณได้อย่างสมบูรณ์แบบ)

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

XML สิ่งอื่น ๆ ที่ใช้กันอย่างแพร่หลายสำหรับไฟล์ข้อมูลที่มนุษย์เขียนได้ / อ่านได้ (?) สำหรับโปรแกรม แต่ที่นี่ก็เช่นกันคุณมีความกระชับมากขึ้นเป็นมิตรกับโปรแกรมมากขึ้นและรูปแบบที่เป็นมิตรกับมนุษย์มากขึ้นใน YAML

ดังนั้นสำหรับการแสดงข้อมูล JSON เต้น XML ทั่วกระดาน มีอะไรเหลือสำหรับ XML แล้ว? ตัวแทนเอกสารผสมเนื้อหาซึ่งเป็นสิ่งที่มันมีไว้สำหรับ


0

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

JSON IMHO นั้นมีความชัดเจนมากกว่า XML ซึ่งทำให้ฉันได้เปรียบอย่างชัดเจน และถ้าคุณทำงานกับ. NET Json.NET เป็นผู้ชนะที่ชัดเจนในการช่วยคุณทำงานกับ JSON

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