JSON หรือ XML ดี ???

3 replies [Last post]
roteee
roteee's picture
Joined: 2007-06-06
Points: 33
User offline. Last seen 6 weeks 1 day ago.
JSON และ XML เราควรจะใช้ในสถานการณ์อย่างไรดี ??

ขอความรู้ และความเห็นหน่อยครับ :D
tongdee
Joined: 2007-06-06
Points: 1
User offline. Last seen 1 year 5 days ago.

 ควรใช้ตอนใหนดี?.... คำถามนี้ตอบยากแฮะ  เพราะว่าแต่ละสถาณการณ์มันต่างกัน เพราะงั้นคงจะเอากฏตายตัวไม่ครับ ลองถาม google ดู ก็มีคนเปรียบเทียบไว้เยอะเหมือนกัน  โดยส่วนตัวที่ใช้งานมาทั้ง 2 อย่างอย่างพอสมควร ก็พอจะสรุปรูปแบบการเลือก การใช้งานส่วนตัวได้คร่าว ๆ ประมาณนี้ครับ

 Json  เน้นหนักไปทางการใช้งานผ่าน javascript script ในการรับส่งข้อมูลภายในระบบเราเท่าั้นั้น

  1. การรับส่ง parameter ระหว่าง function

         จากเดิม function A(fname, lastname, age, ...) {... }

          เป็น  function A(passenger) {

                   var fname = passenger.fname;

           }

      ซึ่งจะใช้งานง่ายและยืดหยุนกว่า

  2. การ post ข้อมูลกลับไปยัง server side ผ่าน ajax มันจะสะดวกกว่าการส่งแบบข้อมูล คั่นด้วย & แบบเดิม ในกรณีที่ข้อมูลมีความซับซ้อน

    แต่ก่อน  postdata = fname=value1&lname=value, ...  ถ้าข้อมูลยาว ๆ และเป็น structure จะจัดลำบากมาก

    เปลี่ยนเป็น

               postdata = {name: "xxx", lastname: "yyy", gigs: [{name: "A", lastname: "B"}, {name: "dd", lastname: "ee"}]}

    code อาจจะดูยุ่ง  แต่ถ้ามองดี ๆ แล้วมันเป็น structure ที่ใช้งานมาก เข้าใจง่าย

    ฝั่ง server ก็เลือก library ที่ parse json string ออกมาในรูปแบบ object ที่เข้าใจง่ายมาใช้ ซึ่งมีแทบจะทุกภาษา (มั้ง) ชีวิตก็จะง่ายขึ้น

   ทั้งสองอย่างนี้สะดวกมากในการจัดรูปแบบ data structure ให้อยู่ในรูป object

 XML เน้นไปทางการแลกเปลี่ยนข้อมูลระหว่างโดนเมนหรือองค์กร เช่น ระบบเรา ต้องการติดต่อ services กับทางธนาคาร เพื่อขอตัดเงินจากบัตรเครดิต ตัดเงินจาก bank account หรือการ query ข้อมูลต่าง ๆ

   ซึ่ง ระบบเก่า ๆ ของธนาคารจะอยู่ในรูปแบบนี้เยอะมาก ผมว่ามันสะดวกกว่าสมัยก่อนที่เป็นลักษณะ seperated value (คั่นด้วย | หรือ "," เป็นต้น)

  ถามว่าแล้วใช้ json แทนได้หรือเปล่า ?

  มันก็ได้นะ อย่าง yahoo นี่ก็มี service ที่ให้ข้อมูลกลับมาในรูปแบบ json เหมือนกัน แต่ว่าอาจจะต้องตรวจสอบความถูกต้อง(validation) ยากหน่อย  ไม่เหมือนกับ xml ที่จะมี xsd ให้ สามารถเทียบได้เลย ถ้าเป็นข้อมูลที่ต้องการความถูกต้องสูง  ใช้ xml + xsd น่าจะสะดวกกว่า

json นี่ผมเองก็ไม่รู้ว่าเขา validate schema มันยังไง

 อีกอย่าง ถ้าเราเลือกพัฒนาการรับส่งข้อมูลระหว่างองค์กรในรูปแบบของ webservices นั่นหมายถึง xml + soap มันจะสะดวกขึ้นไปอีก เพราะนั่นหมายถึงเราได้ประโยชน์จากฝ่ายที่เราต้องติดต่อด้วย เนื่องจาก ทุกคนรู้จัก web services, เข้าใจใน wsdl, เข้าใจเลือก client ว่าถ้าจะ consume web services เขาจะต้องทำยังไง   นั่นเท่ากับว่า เรามีเอกสารให้เขาเกือบครึ่งทางแล้ว  ต่างกับ json ซึ่งจะเป็นรูปแบบที่เรากำหนดเอง  เพราะงั้น ต้องแจงรายละเอียดกันทุกจุด ถึงจะเข้าใจ

   สรุปก็คือ เลือกแบบที่คุณว่าเหมาะสม และใช้งานง่าย ทุกฝ่ายเข้าใจได้ 

    งานจบ...

Surachai Tepkhumdee

kamthorn
kamthorn's picture
Title: DUMB_BOT
Joined: 2007-06-06
Points: 5
User offline. Last seen 1 year 5 days ago.

json ออกแบบมาเพื่อแลกเปลี่ยนข้อมูลโดย Java Script อย่างคุณทองดีว่าครับ เพราะ xml มันซับซ้อนไป (เก่งเกินไปที่จะเอามาส่งข้อมูลกันง่าย ๆ เร็ว ๆ ) การ parse xml ก็กินแรงเยอะไป

ปัจจุบันพวก ajax มักใช้ json ครับ เอาความเร็วเป็นหลัก เน้นส่งข้อมูลสั้น ๆ บ่อย ๆ

แต่ XML มันเป็นมาตรฐานสากลกว่า json นะ ในแง่ความน่าเชื่อถือ ความยั่งยืน จึงเชื่อได้มากกว่า

pomcob
Joined: 2007-06-06
Points: 8
User offline. Last seen 34 weeks 2 days ago.

555

 



©2007-2010 PHPZealots.com. All right reserved.