Flexjson เป็นไลบรารี Java Lightweight สำหรับ Serialize และ Deserialize Java Beans, Maps, Arrays, Collections เป็น JSON Format สามารถ Deserialize JSON String เข้า Existing Object ได้โดยใช้เมธอด deserializeInto() ของคลาส JSONDeserializer เมธอดนี้ Deserialize Input เข้า Target Object ที่มีอยู่แล้ว ค่าใน JSON จะ Overwrite ค่าใน Target Object
Syntax
public T deserializeInto(String input, T target)
ตัวอย่าง: Deserialize Into Existing Object
import flexjson.JSONDeserializer;
public class JsonDeserializeTest {
public static void main(String[] args) {
Employee emp = new Employee("Adithya", "Ram", 25, 35000.00);
System.out.println(emp);
JSONDeserializer<Employee> deserializer = new JSONDeserializer<Employee>();
String jsonStr = "{\"age\": 30,\"salary\": 45000.00}";
emp = deserializer.deserializeInto(jsonStr, emp);
System.out.println(emp);
}
}
// Employee class
class Employee {
private String firstName;
private String lastName;
private int age;
private double salary;
public Employee() {}
public Employee(String firstName, String lastName, int age, double salary) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.salary = salary;
}
// getters, setters...
public String toString() {
return "Employee[ firstName = " + firstName + ", lastName = " + lastName +
", age = " + age + ", salary = " + salary + " ]";
}
}
ผลลัพธ์
Employee[ firstName = Adithya, lastName = Ram, age = 25, salary = 35000.0 ]
Employee[ firstName = Adithya, lastName = Ram, age = 30, salary = 45000.0 ]
สังเกต: Field firstName และ lastName คงค่าเดิม (ไม่มีใน JSON) ส่วน age และ salary ถูก Update จาก JSON ใช้งานได้ดีสำหรับ Partial Update