เมื่อใดที่จะชอบ 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.