[hide=1]Simplified Old Java Objects (SOJO)

เรื่องของเรื่อง หลายวันมานี้เจอโจทย์ที่ต้องใช้ JSON format บน IBM Web Sphere Portal 6.0 ที่ใช้ JRE ของ IBM ที่เป็น Version 1.4.2

เท่าที่ดูก็ไม่น่าจะยุ่งยากอะไร Server Side ที่เป็น Java น่าจะใช้ JSON-Lib ตามพิมพ์นิยม

ตอนทำ POC ด้วย Java App ธรรมดารันใน Rational Software Architect (RSA) ชื่อเดิม WebSphere Studio Application Developer (WSAD) ก็ทำงานบน JRE ตัวที่ว่าได้ดีไม่มีปัญหาแต่อย่างใด

แต่เอาเข้าจริงกลับไม่เป็นแบบนั้น พอย้ายไปรันบน App Server ที่เป็น Web Sphere Portal 6.0 ที่บอกข้างต้น ใช้ Code เดียวกัน กลับ Throw Exception ทำนองหา Class ไม่เจอบ้าง หา Method ไม่เจอบ้าง (มันมีหลาย Exception เพราะตอนหลังผมต้องนั่งไล่ถอด Lib เข้าออกทีละตัว เพราะ JSON-Lib ใช้ พวก Apache Common หลายตัว)

ลองไล่จนเหนื่อย จนคิดว่าเสียเวลามากๆ เอาเวลาไปคิดงานอื่นดีกว่า เลยตัดสินใจเปลี่ยน Lib (คิดหนักยังกับคนเล่นกล้องย้ายค่าย ฮา…)

ไปลองนั่งไล่ในเว็บ JSON.org ว่ามี Lib ตัวไหนน่าสนใจบ้าง

* org.json กับ org.json.simple ของ JSON.org เองก็ Simple แต่ยังตอบโจทย์ในเรื่องความสะดวกไม่ได้ คือต้องการประมาณโยน Object แล้วให้ Lib แปลงเป็น JSON Message ให้เลย
* JsonMarshaller ฟีเจอร์ดูๆน่าจะตามที่ต้องการ แต่โปรเจคเงียบเหงามาก เข้าไปหาเอกสารเจออยู่นิดหน่อย เลยถอย…
* google-gson ฟีเจอร์ดี เอกสารครบ โปรเจคมีการเคลื่อนไหว แต่… require JRE 5.0 อดเลย
* SOJO เท่าที่ลอง เขียนง่ายพอๆกับ JSON-Lib เรื่อง Performance ต่างกันบ้าง แต่ไม่ถึงกับรู้สึกได้ และ Object ที่จะใช้ก็ไม่ได้ใหญ่ถึงขนาดต้องกังวลมากนัก มี Dependency น้อยกว่่า JSON-Lib มาก และที่สำคัญทำงานกับ IBM JRE 1.4.2 และ IBM Web Sphere Portal 6.0 ได้อย่างไม่มีปัญหา

SOJO มี Feature ในการแปลง Java Object ไปมาระหว่าง Format ต่อไปนี้

[code]