Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để giải mã hóa JSON thành một đối tượng hiện có trong Java?


Flexjson là một nhẹ thư viện java để tuần tự hóa deserializing java bean, bản đồ, mảng và bộ sưu tập ở định dạng JSON. Chúng tôi cũng có thể giải mã hóa chuỗi JSON thành một đối tượng hiện có bằng cách sử dụng deserializeInto () phương thức của JSONDeserializer lớp, phương thức này giải hóa dữ liệu đầu vào đã cho vào mục tiêu đối tượng hiện có. Các giá trị trong đầu vào json có thể ghi đè các giá trị trong đối tượng đích. Điều này có nghĩa là nếu một giá trị được bao gồm trong JSON, một đối tượng mới có thể được tạo và đặt vào đối tượng hiện có.

Cú pháp

public T deserializeInto(String input, T target)

Ví dụ

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 +
      " ]";
   }
}

Đầu ra

Employee[ firstName = Adithya, lastName = Ram, age = 25, salary = 35000.0 ]
Employee[ firstName = Adithya, lastName = Ram, age = 30, salary = 45000.0 ]