Learning JSON

ได้ยินชื่อเสียงมานาน วันนี้ได้ฤกษ์อ่าน JSON

ให้อธิบายสั้นๆ เนื่องจาก XML มันรก วงเล็บปีกกาเต็มไปหมด ถ้าต้องการแลกเปลี่ยนข้อมูลสั้นๆ ก็ไม่คุ้มที่จะใช้ XML ดังนั้นเราหาวิธีอื่นที่จะอธิบาย object แบบง่ายๆ ดีกว่า JSON ใช้ datatype ของภาษาโปรแกรมที่คนอ่านเข้าใจง่ายกว่า XML แทน แค่นี้เอง

ตอนแรกภาษาโปรแกรมที่ใช้คือ JavaScript (เลยชื่อ JSON) แต่ตอนนี้แทบทุกภาษามี JSON Parser/Generator แล้ว

ถ้ามองในภาพรวม ต้องเอาไปเปรียบเทียบกับ SOAP และ XML-RPC ด้วย

  • XML
    • SOAP - มันซับซ้อนมากจน Google ยังเลิกใช้
    • XML-RPC - ลดความซับซ้อนลงมา แต่ก็ยังเป็น XML
  • Non-XML
    • JSON - ลดความซับซ้อนอีก เสียฟีเจอร์บางอันที่เกี่ยวกับ RPC ไป แต่ส่วนมากเราไม่ใช้อยู่แล้วนี่

เพื่อความเข้าใจง่าย ดูโค้ดเร็วที่สุด อ่าน เปรียบเทียบ SOAP vs XML-RPC และ โค้ดเดียวกันในรูป JSON

ส่วนบทความ JSON ที่ครอบคลุมและได้คอนเซปต์สุดก็อันนี้ Why JSON isn’t just for JavaScript เดี๋ยวไปลองเขียนโค้ดจริงสักนิด แล้วจะมาบล็อกถึงต่อไป

มีความรู้สึกว่า JSON ต้องดังแบบ RoR ด้วยเหตุผลด้านความเรียบง่ายที่ดันมาถูกที่ถูกเวลา อืม มองในแง่กระบวนการทางสังคมก็น่าสนใจ เป็นการ simplification แบบนึงนี่นะ

ถ้าเอาไปใช้งานพวก RPC ก็คงจะใช้ JSON เหมือนกัน แต่ก็ยังชอบใช้ XML สำหรับพวก configuration อยู่ ผมว่ามันอ่านง่ายกว่า

ครั้งนึงตอน XML บูมๆ เราก็บอกว่ามันอ่านง่าย ไม่รก :P

ผมก็ชอบเพราะความง่ายของมันนี่แหละ
ยิ่งใช้บน javascript นี่ไม่ต้องมีฟังก์ชันพิเศษมา parse เลย ยัด eval จบ
แถมเอามาทำ cross site ได้อีก สุดยอดมากๆ

มันก็ดังของมันอย่างนี้แต่ไหนแต่ไรมาอยู่แล้ว ไม่ได้เปรี้ยงปร้างแบบพลุแตก แต่ก็ได้รับการยอมรับเป็นมาตรฐานเปิดในการรับส่งข้อมูล แต่ของตาย จะเล็กยังไงส่งเป็น text มันก็สู้ส่งเป็น binary ไม่ได้อยู่ดี

plynoi: ผมไม่เคยคิดแบบนั้นเลยนะ คิดว่าการเอาคอนฟิกมาใส่ XML มัน over-engineered มาตลอดเลย

ไม่รู้ว่า xml มัน over-engineered ไหม แต่เวลามาไล่หาความสัมพันธ์นี่ไม่ค่อยสนุกเท่าไหร่ หลังๆเลยหนีไปใช้อะไรที่ไม่ต้องยุ่งกับ xml มากนัก ^^"

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options