Flexjson là thư viện nhẹ cho Java để serialize và deserialize Java beans, maps, arrays, collections trong định dạng JSON. Có thể deserialize chuỗi JSON vào đối tượng hiện có dùng phương thức deserializeInto() của lớp JSONDeserializer, phương thức này deserialize input vào đối tượng target hiện có. Các giá trị trong JSON input có thể ghi đè giá trị trong target object.
Cú pháp
public T deserializeInto(String input, T target)
Ví dụ minh họa
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);
}
}
// Lớp Employee
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) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.salary = salary;
}
public String getFirstName() { return firstName; }
public void setFirstName(String firstName) { this.firstName = firstName; }
public String getLastName() { return lastName; }
public void setLastName(String lastName) { this.lastName = lastName; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public double getSalary() { return salary; }
public void setSalary(double salary) { this.salary = salary; }
public String toString() {
return "Employee[ " + "firstName = " + firstName + ", lastName = " + lastName + ", age = " + age + ", salary = " + salary + " ]";
}
}
Kết quả đầu ra
Employee[ firstName = Adithya, lastName = Ram, age = 25, salary = 35000.0 ] Employee[ firstName = Adithya, lastName = Ram, age = 30, salary = 45000.0 ]
Ứng dụng: Hữu ích khi cần cập nhật một phần đối tượng từ JSON (partial update) mà không muốn tạo instance mới hoàn toàn.