By | April 2, 2022

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

CSV

CSV ย่อมาจาก “ค่าที่คั่นด้วยจุลภาค” ตามความหมายของชื่อ รูปแบบข้อมูลนี้โดยพื้นฐานแล้วคือรายการองค์ประกอบที่คั่นด้วยเครื่องหมายจุลภาค สมมติว่าคำตอบของคุณกำลังส่งรายชื่อบุคคลในครอบครัวหนึ่งๆ กลับไป รูปแบบจะมีลักษณะดังนี้:

เอริค,แอนเดรีย,คุสโก้

ข้อดี – รูปแบบนี้มีขนาดกะทัดรัดที่สุดในทั้งสามรูปแบบ โดยทั่วไป รูปแบบ CSV มีขนาดประมาณครึ่งหนึ่งของรูปแบบ XML และ JSON นี่คือข้อได้เปรียบที่สำคัญของ CSV เพราะสามารถช่วยลดแบนด์วิดท์ได้

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

สุดท้าย CSV ไม่สนับสนุนลำดับชั้นข้อมูลจริงๆ จะทำอย่างไรถ้าคุณต้องการส่งแอตทริบิวต์ของแต่ละคนในแต่ละครอบครัวกลับมา? จากนั้น คุณจะต้องออกแบบ parser ที่ซับซ้อนซึ่งรู้ว่าส่วนใดของ CSV ที่อ้างถึงองค์ประกอบของครอบครัว และส่วนใดที่อ้างถึงองค์ประกอบของแต่ละคน วิธีหนึ่งในการแก้ปัญหานี้คือการใช้ตัวคั่นอื่น เช่น “;” เพื่อแยกคุณลักษณะของแต่ละคน:

เอริค;ชาย;26,แอนเดรีย;หญิง;26,คุสโก;ชาย;8

อย่างไรก็ตาม ปัญหาในการสร้างรูปแบบที่กำหนดเองคือคุณต้องเสียค่าใช้จ่ายในการรักษา parser ที่ซับซ้อนยิ่งขึ้น

XML

XML ย่อมาจาก “ภาษามาร์กอัปที่ขยายได้” XML ได้รับการออกแบบในปี 1996 และกลายเป็นมาตรฐาน W3C อย่างเป็นทางการในปี 1998 มันถูกสร้างขึ้นเพื่อแสดงรูปแบบข้อมูลที่ดีขึ้นด้วยโครงสร้างแบบลำดับชั้น รูปแบบมีลักษณะดังนี้:

</p> <person> <name> Eric </name> <age> 26 </age> </person> <person> <name> Andrea </name> <age> 26 </age> </person> <person> < name> Kusco </name> <อายุ> 8 </age> </person>

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

ข้อเสีย – รูปแบบข้อมูลนี้มีขนาดใหญ่กว่า CSV ประมาณสามเท่า เนื่องจากองค์ประกอบข้อมูลแต่ละองค์ประกอบมีแท็กพารามิเตอร์เปิดและปิดที่เกี่ยวข้อง

JSON

JSON ย่อมาจาก (Javascript Object Notation) มันถูกประดิษฐ์ขึ้นในปี 2544 และกลายเป็นที่นิยมโดย Yahoo และ Google ในปี 2548 และ 2549 มันถูกสร้างขึ้นเพื่อเป็นทางเลือกแทน XML อย่างไรก็ตาม เช่นเดียวกับ XML มันแสดงข้อมูลตามลำดับชั้นโดยใช้เครื่องหมายจุลภาค วงเล็บปีกกา และวงเล็บปีกกา ตัวอย่างของ JSON มีลักษณะดังนี้:

{“name”:”Eric”,”age”:”26″},
{“name”:”Andrea”,”age”:”26″},
{“name”:”Kusco”,”age”:”8″}

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

ข้อเสีย – รูปแบบข้อมูลนี้มีการสนับสนุนน้อยกว่า XML เล็กน้อย เนื่องจาก JSON ค่อนข้างใหม่กว่า XML จึงมี API น้อยลงในการแปลง JSON เป็นโครงสร้างข้อมูลดั้งเดิมโดยอัตโนมัติ อย่างไรก็ตาม สิ่งนี้กำลังเปลี่ยนแปลงอย่างรวดเร็ว เนื่องจาก API และปลั๊กอินที่ใหม่กว่ารองรับทั้ง XML และ JSON

บทสรุป

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