JSON เคยใช้กันบ้างไหม ?

Thursday, January 22nd, 2009

สำหรับการส่งข้อมูลในการใช้งานไม่ว่าจะเป็นพวก Web Service ต่างๆพวกเราอาจจะคุ้นกับ XML ซะเป็นส่วนมาก แต่ในบางครั้งนักพัฒนาก็ต้องเจอข้อจำกัดของตัว XML เองบางครั้งก็เลยทำให้นักพัฒนาต้องหาการใช้งานดาต้าในรูปแบบอื่นๆเพื่อนำมาใช้งานกัน

ซึ่ง JSON หรือ JavaScript Object Notation เป็นข้อมูลสำหรับแลกเปลี่ยนที่เล็ก ง่ายสำหรับการ อ่าน และ เขียน ซึ่งจะว่าไปแล้ว JSON ก็คล้ายกับ XML ก็คือเป็นข้อมูลแบบเป็นไฟล์ text ธรรมดาๆ ที่มี Format ที่เป็นมาตรฐานและโครงสร้างของไฟล์ที่ตายตัว

JSON มี 2 รูปแบบคือ
1. แบบ Key pair value
2. แบบ list

json-01.jpg
ในรูปเป็นตัวอย่างโครงสร้างของข้อมูลในแบบ object และในแบบ array

ที่มาพูดถึง JSON ก็เพราะว่าคุยกะ 9AUM แห่ง Scriptdd.com แล้ว ได้ไฟล์ Plugin Wordpress ที่ดึงเอารูปจากเว็บ PG.in.th มาแสดง ไอ้ผมก็เลยไปลองดึงข้อมูลจากทางเว็บ PG มาดูก็รู้ว่าทางเว็บ PG แจกข้อมูลออกมาเป็นข้อมูลในแบบ JSON ซึ่งเมื่อลองมองๆดูการนำไปแชร์ข้อมูล เพื่อให้เว็บอื่นๆดึงไปใช้ผมว่ามันค่อนข้างที่จะง่ายเลยทีเดียวกับการดึงข้อมูลไปแสดงผล

json-02.jpg

ลองดึงข้อมูลที่ทาง PG.in.th แชร์ข้อมูลเพื่อทำ API ไว้ เมื่อ save file แล้วเปิดดูก็พบว่ามีข้อมูลดังนี้

{”tg_flash”: null, “Photos”: [{”Src”: “/asset/photo/48×48/14655/X1KBGLQxPz.jpg”, “UploadTime”: “21.01.2009 18:31″, “PhotoId”: 76237, “Description”: “”, “Tags”: “ส่วนตัว”, “Title”: “ซ้อมๆ”, “Longitude”: “98.97″, “Place”: “SuanPrung(1)”, “Latitude”: “18.78″}, {”Src”: “/asset/photo/48×48/14655/H9bG9CNbtg.jpg”, “UploadTime”: “21.01.2009 18:30″, “PhotoId”: 76235, “Description”: “”, “Tags”: “ส่วนตัว”, “Title”: “เลือกอาวุธ”, “Longitude”: “98.97″, “Place”: “SuanPrung(1)”, “Latitude”: “18.78″}, {”Src”: “/asset/photo/48×48/14655/bboLkIN4jr.jpg”, “UploadTime”: “21.01.2009 17:52″, “PhotoId”: 76213, “Description”: “”, “Tags”: “ส่วนตัว”, “Title”: “ซ้อมดนตรีอีกแว้ว”, “Longitude”: “98.98″, “Place”: “DTACoffice(2)”, “Latitude”: “18.78″}……….(อีกมากมาย)………

ซึ่งดูจากชุดข้อมูลแล้วนั้นก็ทราบว่าข้อมูลที่ส่งมาเป็นแบบ object นี่เอง

json-03.jpg
ผลจาก Plugin WordPress ที่ 9AUM เอามาให้ใช้งาน เพื่อดึงข้อมูลจาก PG.in.th มาแสดงผลนะครับ

เอาล่ะ!!!! มาลองเขียนข้อมูลแบบง่ายๆดูสักชุดหนึ่งกันดีกว่า ผมตั้งชื่อไฟล์ไว้ว่า data โดยมีข้อมูลดังนี้

{”Maxx” : [{”Name” : “Asada Inta”, “Nick” : “Max”}, {”Name” : “Anon Chumjai”, “Nick” : “Non”}, {”Name” : “Jarunee Kapao”, “Nick” : “Jack”}]}

จากนั้นก็ทำการใช้คำสั่งของ curl ดึงไฟล์มาอ่านครับ ( PHP ต้องเปิดใช้งาน curl ด้วย ) แล้วก็ใช้คำสั่ง json_decode เพื่อจัดการข้อมูล แล้วก็วนลูปเอาข้อมูลมาแสดงผลครับ โดยเขียนดังนี้

<?php
$c = curl_init(”
http://localhost/test/data“); //URL ของไฟล์ข้อมูล
curl_setopt($c, CURLOPT_HEADER, 0);
curl_setopt($c, CURLOPT_VERBOSE, 0);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

$json_content = curl_exec($c);
curl_close($c);
$json_decode = json_decode($json_content);

for ($i=0 ; $i < 3 ; $i++) {
 $Name = $json_decode->Maxx[$i]->Name;
 $Nickname = $json_decode->Maxx[$i]->Nick;

 $HTML .=”$Name : $Nickname<br />”;
}
echo $HTML;
?>

ผลที่ได้ก็จะเป็นดังนี้ครับ

Asada Inta : Max
Anon Chumjai : Non
Jarunee Kapao : Jack

ไวดีไหมครับ และที่ผมชอบก็คือ หลากหลายภาษาล้วนแล้วแต่ Support ข้อมูลแบบ JSON แทบทั้งนั้นเลย เช่น ASP, ActionScript, C, C++, C#, ColdFusion, Delphi, Haskell, Java, JavaScript, Lisp, LotusScript, Objective C, Perl, Python, Ruby, Visual FoxPro และที่สำคัญก็คือ PHP นี่แหล่ะครับ เลยทำให้ผมเริ่มที่จะเล็งข้อมูลแบบ JSON มาใช้ เพราะโค๊ดเขียนได้สั้นกว่าการอ่าน XML และง่ายสำหรับมือใหม่ๆในการเขียนโค๊ดมากๆ

และของฝากครับสำหรับใครที่อยากจะเปลี่ยนจาก XML เป็น JSON ด้วย PHP ครับ
http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/

เดี๋ยวในเว็บใหม่ๆที่ผมจะทำคงแชร์ข้อมูลออกมาทั้งแบบ XML และ JSON ครับ

Editor's Talk!

สวัสดีคนที่หลงเดินทางเข้ามายัง Blog ของผม อาจจะด้วยความไม่ตั้งใจ หรือ ตั้งใจเข้ามาก็ตาม ก่อนอื่นผมก็ต้องขอออกตัวก่อนว่า Blog ของผมมันจะมีสาระบ้าง หรือ ไม่มีสาระเลย ก็แล้วแต่อารมณ์ช่วงไหนอยากเขียนอะไร อย่าเหมาว่า Blog ผมจะต้องมีแต่ความรู้เหมือน Blog ของคนอื่นๆ นะครับ
สำหรับ Blog นี้ ผมสามารถใช้คำพูดใดๆก็ได้ตามที่ผมเห็นสมควร เพราะมันคือ Blog ของกู(ผม) บางครั้งผมเขียนไปกระทบใครก็ขออภัยไว้ ณ. ที่นี้ด้วย ก็ไม่มีอะไรมากครับ ขอบคุณที่เข้ามาอ่าน Blog ของผมนะครับ

นายแม็ค

ค้นหา :