Flexjson เป็นไลบรารีเบา الوزن สำหรับ serialize และ deserialize ออบเจ็กต์ Java เป็น และ จาก รูปแบบ JSON เราสามารถ serialize list ของออบเจ็กต์ ได้โดยใช้เมธอด serialize() ของคลาส JSONSerializer เมธอดนี้ทำการ shallow serialization ของอินสแตนซ์เป้าหมาย เราต้องส่ง list ของออบเจ็กต์ ชนิด List เป็นอาร์กิวเมนต์ให้เมธอด serialize()
ไวยากรณ์
public String serialize(Object target)
ตัวอย่างโค้ด
import flexjson.JSONSerializer;
import java.util.*;
public class JsonSerializeListTest {
public static void main(String[] args) {
JSONSerializer serializer = new JSONSerializer().prettyPrint(true); // pretty print JSON
Student s1 = new Student("Raja", "Ramesh", 28, "Hyderabad");
Student s2 = new Student("Suresh", "Kumar", 30, "Chennai");
Student s3 = new Student("Surya", "Krishna", 35, "Pune");
List<Student> students = Arrays.asList(s1, s2, s3);
String jsonStr = serializer.serialize(students);
System.out.println(jsonStr);
}
}
// Student class
class Student {
private String firstName;
private String lastName;
private int age;
private String address;
public Student() {}
public Student(String firstName, String lastName, int age, String address) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
}
// Getters...
public String getFirstName() { return firstName; }
public String getLastName() { return lastName; }
public int getAge() { return age; }
public String getAddress() { return address; }
@Override
public String toString() {
return "Student[ firstName = " + firstName + ", lastName = " + lastName + ", age = " + age + ", address = " + address + " ]";
}
}
ผลลัพธ์
[
{ "address": "Hyderabad", "age": 28, "class": "Student", "firstName": "Raja", "lastName": "Ramesh" },
{ "address": "Chennai", "age": 30, "class": "Student", "firstName": "Suresh", "lastName": "Kumar" },
{ "address": "Pune", "age": 35, "class": "Student", "firstName": "Surya", "lastName": "Krishna" }
]
หมายเหตุ
Flexjson จะเพิ่มฟิลด์ class อัตโนมัติเพื่อระบุชนิดคลาส ซึ่งช่วยในการ deserialize กลับมาเป็นออบเจ็กต์เดิมได้ สามารถปิดการทำงานนี้ได้ด้วยการตั้งค่า exclude("class") หากไม่ต้องการให้รวมอยู่ใน JSON