Flexjson เป็นไลบรารีเบาสำหรับ ทำซีเรียลไลซ์ (serializing) และ ถอดรหัส (deserializing) อ็อบเจกต์ Java เข้าและออกจากรูปแบบ JSON คลาส JSONSerializer เป็นคลาสหลักสำหรับทำซีเรียลไลซ์อ็อบเจกต์ Java เป็น JSON และโดยค่าเริ่มต้นทำ shallow serialization เราสามารถทำซีเรียลไลซ์สตริง JSON ไปยัง Output Handler ได้โดยใช้คลาส WriterOutputHandler ซึ่ง implements อินเทอร์เฟซ OutputHandler
ไวยากรณ์
public class WriterOutputHandler extends Object implements OutputHandler
ตัวอย่างโค้ด
import java.io.*;
import flexjson.JSONSerializer;
import flexjson.OutputHandler;
import flexjson.WriterOutputHandler;
public class JsonOutputHandlerTest {
public static void main(String[] args) {
JSONSerializer serializer = new JSONSerializer().prettyPrint(true); // pretty print JSON
Employee emp = new Employee("Raja", "Ramesh", 28, "Hyderabad");
OutputHandler out = new WriterOutputHandler(new StringWriter());
serializer.serialize(emp, out);
System.out.println(out.toString());
}
}
// คลาส Employee
class Employee {
private String firstName;
private String lastName;
private int age;
private String address;
public Employee() {}
public Employee(String firstName, String lastName, int age, String address) {
super();
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; }
public String toString() {
return "Employee[ " +
"firstName = " + firstName +
", lastName = " + lastName +
", age = " + age +
", address = " + address +
" ]";
}
}
ผลลัพธ์
{
"address": "Hyderabad",
"age": 28,
"class": "Employee",
"firstName": "Raja",
"lastName": "Ramesh"
}