如何將 JSON 反序列化到 Java 中的現有物件?
Flexjson 是一個輕量級java庫,用於以 JSON 格式序列化和反序列化 java bean、map、array 和集合。我們還可以使用JSONDeserializer 類的deserializeInto() 方法將JSON 字串反序列化為現有物件,此方法將給定的輸入反序列化為現有物件 target。json 輸入中的值可以覆蓋目標物件中的值。這意味著如果 JSON 中包含一個值,則可以建立一個新物件並將其設定到現有物件中。
語法
public T deserializeInto(String input, T target)
示例
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) { 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 + " ]"; } }
輸出
Employee[ firstName = Adithya, lastName = Ram, age = 25, salary = 35000.0 ] Employee[ firstName = Adithya, lastName = Ram, age = 30, salary = 45000.0 ]
廣告