Flexjson เป็นไลบรารี Lightweight สำหรับ Serialize และ Deserialize Java Object เป็น/จาก JSON Format สามารถ Serialize Map ได้โดยใช้เมธอด serialize() ของคลาส JSONSerializer ทำ Shallow Serialization ของ Target Instance
Syntax
public String serialize(Object target)
ตัวอย่าง: Serialize Map พร้อม Object ซ้อนกัน
import flexjson.JSONSerializer;
import java.util.*;
public class JsonSerializeMapTest {
public static void main(String[] args) {
JSONSerializer serializer = new JSONSerializer().prettyPrint(true);
Student student = new Student("Adithya", "Sai", 28, "Hyderabad");
Map<String, Object> map = new HashMap<String, Object>();
map.put("Student1", "Raja");
map.put("Student2", "Ravi");
map.put("my_student", student);
String jsonStr = serializer.serialize(map);
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;
}
public String getFirstName() { return firstName; }
public String getLastName() { return lastName; }
public int getAge() { return age; }
public String getAddress() { return address; }
public String toString() {
return "Student[ firstName = " + firstName + ", lastName = " + lastName +
", age = " + age + ", address = " + address + " ]";
}
}
ผลลัพธ์
{
"my_student": {
"address": "Hyderabad",
"age": 28,
"class": "Student",
"firstName": "Adithya",
"lastName": "Sai"
},
"Student1": "Raja",
"Student2": "Ravi"
}
สังเกต: Flexjson เพิ่ม field "class" เข้าไปอัตโนมัติเพื่อระบุ Type ของ Object