เนื่องจากระบบที่ทำอยู่นั้นมีการรับส่งข้อมูลเป็น xml format กันมานาน ซึ่งก็มักเกิดปัญหาหลายๆ อย่าง ซึ่งส่วนใหญ่เกี่ยวกับข้อจำกัดของ xml ดังนั้นจึงทดลองหา data format อื่นๆ มาลองใช้ดูบ้าง ซึ่ง 1 ในนั้นก็คือ JSon โดยชื่อนี้นักพัฒนาส่วนใหญน่าจะรู้จักและเคยใช้งานมาแล้ว โดย JSon คืออะไรนั้นสามารถดูได้ที่นี่ JSON
ถ้าอ่านหรือศึกษา JSon มาบ้างจะเห้นว่ามันคือ text ธรรมดาที่มี format เป็นมาตรฐานและเป้นโครงสร้างที่ตายตัว มีลักษณะ 2 แบบคือ
1. key pair value
2. list
มาถึง requirement ที่ผมจะทำบ้าง
1. สร้าง end point ที่ return JSon data ออกมา โดยใช้ภาษา Java ในภาษา Java จะมี API ชื่อว่า JSON Lib Project ในการใช้งานนั้นจะมี dependency lib ดังนี้
* jakarta commons-lang 2.3
* jakarta commons-beanutils 1.7.0
* jakarta commons-collections 3.2
* jakarta commons-logging 1.1
* ezmorph 1.0.3
การใช้งานไม่ยากเท่าไร เพราะว่ามีตัวอย่างพร้อมอยู๋แล้ว วิธีที่ผมต้องการคือแปลงจาก java object ไปเป็น JSon Object ดังตัวอย่าง
เมื่อผม print ค่าออกมาดูจะเป็นดังนี้
ตรงนี้เราสามารถนำ Value Class, List, Map, Java Bean มาใช้ได้ทั้งหมด ทำให้ส่วนนี้ผ่านไปได้อย่างสบายครับ
ต่อมาลองมาดูฝั่งผู้เรียกใช้งาน end point นี้บ้าง
จากระบบเก่านั้นจะใช้ AJAX ซึ่งใช้ของ Prototype JS และตัว prototype นี้ก็ support JSon อยู๋แล้วทำให้สบายมากๆ โดยสามารถดูตัวอย่างการใช้งานได้ที่นี่ Introduction to JSON
ตัวอย่างที่ผมองเขียน AJAX เพื่อเรียกใช้งานเป้นดังนี้
จากตัวอย่างผมเรียก service ที่มี end point url = http://localhost:808...est_service.jsp
เมื่อได้ข้อมูลมาแล้วก็ eval เป็น JSON Object ด้วย method evalJSON() จากนั้นก็สามารถอ้างชื่อด้วย key ได้เลยครับ จากตัวอย่าง key=data ดังนั้นจึงสามารถอ้างถึงด้วย jsonObj.data
นี่ก็เป็นเพียงส่วนหนึ่งในการนำ JSON มาใช้สำหรับการรับส่งข้อมูลใน application ครับ ตอนนี้กำลังทดสอบกับปัญหาหลายๆ อย่างที่เจอมา ว่าสามารถแก้ปัญหาได้หรือเปล่า
Quote
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. ......
ถ้าอ่านหรือศึกษา JSon มาบ้างจะเห้นว่ามันคือ text ธรรมดาที่มี format เป็นมาตรฐานและเป้นโครงสร้างที่ตายตัว มีลักษณะ 2 แบบคือ
1. key pair value
2. list
มาถึง requirement ที่ผมจะทำบ้าง
1. สร้าง end point ที่ return JSon data ออกมา โดยใช้ภาษา Java ในภาษา Java จะมี API ชื่อว่า JSON Lib Project ในการใช้งานนั้นจะมี dependency lib ดังนี้
* jakarta commons-lang 2.3
* jakarta commons-beanutils 1.7.0
* jakarta commons-collections 3.2
* jakarta commons-logging 1.1
* ezmorph 1.0.3
การใช้งานไม่ยากเท่าไร เพราะว่ามีตัวอย่างพร้อมอยู๋แล้ว วิธีที่ผมต้องการคือแปลงจาก java object ไปเป็น JSon Object ดังตัวอย่าง
Map m = new HashMap(); m.put( "data", "TEST DATA" ) net.sf.json.JSONObject obj = net.sf.json.JSONObject.fromObject( m );
เมื่อผม print ค่าออกมาดูจะเป็นดังนี้
Quote
{"data":"TEST DATA"}
ตรงนี้เราสามารถนำ Value Class, List, Map, Java Bean มาใช้ได้ทั้งหมด ทำให้ส่วนนี้ผ่านไปได้อย่างสบายครับ
ต่อมาลองมาดูฝั่งผู้เรียกใช้งาน end point นี้บ้าง
จากระบบเก่านั้นจะใช้ AJAX ซึ่งใช้ของ Prototype JS และตัว prototype นี้ก็ support JSon อยู๋แล้วทำให้สบายมากๆ โดยสามารถดูตัวอย่างการใช้งานได้ที่นี่ Introduction to JSON
ตัวอย่างที่ผมองเขียน AJAX เพื่อเรียกใช้งานเป้นดังนี้
<script language="JavaScript" src="../prototype.js" ></script>
<script>
function call() {
new Ajax.Request('http://localhost:8080/json/test_service.jsp',
{
method:'get',
onSuccess: function(transport){
var jsonObj = transport.responseText.evalJSON( );
alert( jsonObj.data );
}
});
}
</script>
<body>
<a href="#" onClick="call()">TEST CALL JSON</a>
</body>จากตัวอย่างผมเรียก service ที่มี end point url = http://localhost:808...est_service.jsp
เมื่อได้ข้อมูลมาแล้วก็ eval เป็น JSON Object ด้วย method evalJSON() จากนั้นก็สามารถอ้างชื่อด้วย key ได้เลยครับ จากตัวอย่าง key=data ดังนั้นจึงสามารถอ้างถึงด้วย jsonObj.data
นี่ก็เป็นเพียงส่วนหนึ่งในการนำ JSON มาใช้สำหรับการรับส่งข้อมูลใน application ครับ ตอนนี้กำลังทดสอบกับปัญหาหลายๆ อย่างที่เจอมา ว่าสามารถแก้ปัญหาได้หรือเปล่า
0 Comments On This Entry
Search My Blog
Recent Entries
Recent Comments
Tags
- Android
- Apache WebServer
- autowired
- captcha
- CodeIgniter
- Cometd
- CSS
- elgg
- floating point
- Groovy and Grails
- Hibernate
- html
- It's me
- Java Technologies
- JQuery
- log4j
- maven
- memcache
- My Bookmark
- MySql
- NJUG
- nosql
- Oracle
- php
- re-captcha
- Scala
- SDLC
- solr
- Spring Framework
- springframework
- Streaming
- Subversion
- svn
- Testing
- timezone
- tip
- Tomcat
- tools team
- transaction
- Velocity
- Web Technologies
- WebOS
- xml-rpc
- yii
← September 2010 →
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Help
Leave Comment








