การใช้งาน JSON เพื่อการสื่อสารกับ Javascript ในรูปแบบของ Ajax เขียนเมื่อ 2009.07.07 โดย

หลายๆ คนที่เพิ่งศึกษาเรื่อง Ajax (Asynchronous Javascript and XML) มักจะติดปัญหาเรื่องการส่งค่าจาก Server-Side ที่มีหลายข้อมูลกลับคืนไปให้ Javascript ได้อย่างไร

ในความเป็นจริงแล้วทุกภาษาที่รองรับการเขียนโปรแกรมแบบ OOP (Object-Oriented Programming) สามารถใช้งาน JSON ได้ทั้งหมด

ซึ่งใน PHP เองก็จะมีกลุ่มของคำสั่งชุดหนึ่งชื่อว่า JSON (JavaScript Object Notation) ใช้ในการแลกเปลี่ยนข้อมูลกับ Javascript ในรูปแบบของวัตถุ Object ซึ่งความสามารถนี้ถูกเพิ่มเข้ามาใน PHP 5.2.0

คำสั่งที่สำคัญมี 2 คำสั่งคือ
  • json_encode ใช้ในการจัดรูปแบบตัวแปรของ PHP เป็น JSON String เพื่อใช้ในการส่งไปยัง Javascript
  • json_decode ใช้ในการจัดรูปแบบข้อมูล JSON String ที่ได้รับมาเป็นตัวแปรของ PHP
การใช้งาน json_encode ก็ง่ายๆ ครับ
PHP
  1. <?
  2. $myvar = array("Apple", "Orange", 23, false);
  3. echo json_encode($myvar);
  4. ?>

ซึ่งจะได้ผลเป็น
TEXT
  1. ["Apple", "Orange", "23", "false"]

เวลาเอามาใช้งานใน Javascript ก็เพียง
JAVASCRIPT
  1. var data = eval('(["Apple", "Orange", "23", "false"])');

เราก็สามารถเรียกใช้ตัวแปร data ในรูปแบบของ array ได้แล้ว

หรือแม้แต่ associative array (ใน PHP เรียกว่า associative array ส่วนใน Javascript จะเรียกว่า hash/object) ก็สามารถทำได้เช่น
PHP
  1. <?
  2. $myvar = array("a"=>"Apple", "b"=>"Orange", "c"=>23, "d"=>false);
  3. echo json_encode($myvar);
  4. ?>

ซึ่งจะได้ผลเป็น
TEXT
  1. {"a":"Apple", "b":"Orange", "c":23, "d":false}

ส่วนการใช้งาน json_decode ก็กลับกันเช่น
PHP
  1. <?
  2. $myvar = json_decode('["Apple", "Orange", "23", "false"]');
  3. //หรือ
  4. $myvar = json_decode('{"a":"Apple", "b":"Orange", "c":"23", "d":"false"}');
  5. ?>

การใฃ้งาน JSON ทำให้การสื่อสารของ AJAX Application ของเราสามารถทำได้ง่ายและรวดเร็วมากยิ่งขึ้น



คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย