Java Array เป็น object ที่จัดเก็บ หลายตัวแปร ของ ชนิดเดียวกัน (same type) รองรับทั้ง primitive types และ object references ในขณะที่ JSONArray เป็น ลำดับที่มีเรียงลำดับ (ordered sequence) ของค่า รูปแบบภายนอกคือ string ครอบด้วย square brackets คั่นด้วย comma รูปแบบภายในคือ object ที่มีเมธอด get() และ opt() สำหรับเข้าถึงค่าผ่าน index และเมธอด element() สำหรับเพิ่ม/แทนที่ค่า
ขั้นตอนแรก สร้าง Object[] array และส่งเป็น argument ให้เมธอด toJSON() ของคลาส JSONSerializer แล้ว type cast เพื่อได้ JSONArray
ตัวอย่างการใช้งาน
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
public class ConvertArrayToJSONArrayTest {
public static void main(String[] args) {
Object[] objArray = new Object[] {
"Array to JSON Array",
new Integer(10),
new Long(30),
new Double(14.26),
true,
new char[] {'X', 'Y', 'Z'}
};
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(objArray);
System.out.println(jsonArray.toString(3)); // pretty print JSON
}
}
ผลลัพธ์ (Output)
[
"Array to JSON Array",
10,
30,
14.26,
true,
[
"X",
"Y",
"Z"
]
]
คำอธิบาย
- String → JSON string
- Integer, Long, Double → JSON number
- Boolean → JSON boolean
- char[] → JSON array ของ strings (แต่ละ char กลายเป็น string)
- nested arrays/objects จะถูกแปลงแบบ recursive
ข้อควรระวัง
- Primitive arrays (int[], double[]) จะถูกแปลงเป็น JSON array ของค่า primitives
- Object arrays (Object[]) รองรับ mixed types
- Multi-dimensional arrays จะกลายเป็น nested JSON arrays
- Null elements จะกลายเป็น JSON null
สรุป
JSONSerializer.toJSON() ให้การแปลง Java array เป็น JSONArray ได้อย่างอัตโนมัติและถูกต้อง รองรับทุกชนิดของ array และ nested structures เหมาะสำหรับการแปลงข้อมูล array ไปเป็น JSON format อย่างรวดเร็ว