如何使用 Java 中的 flexjson 将 JSON 反序列化为 Java 对象?


Flexjson 是一个轻量级 库,用于将 Java 对象序列化为 JSON 格式,再从 JSON 格式反序列化为 Java 对象,它支持对对象进行深度复制和浅度复制。要运行带有flexjon的 Java 程序,我们需要导入一个flexjson 。我们可以使用JSONDeserializer 类的deserialize()方法将 JSON 反序列化为 Java 对象,它接受一个 json 字符串作为输入,并从该 json 表示形式生成一个静态类型化的对象图。默认情况下,它使用 json 数据中的 class 属性将无类型泛型 json 数据映射到特定的 Java 类型。

语法

public T deserialize(String input)

在下面程序中,将 JSON 反序列化为 Java 对象

实例

import flexjson.*;
public class DeserializeJSONTest {
   public static void main(String[] args) {
      JSONDeserializer<Student> deserializer = new JSONDeserializer<Student>();
      String jsonStr =
                  "{" +
                  "\"firstName\": \"Ravi\"," +
                  "\"lastName\": \"Chandra\"," +
                  "\"age\": 35," +
                  "\"class\": \"Student\"," +
                  "\"salary\": 50000.00," +
                  "}";
      Student student = deserializer.deserialize(jsonStr);
      System.out.println(student);
   }
}
// Student class
class Student {
   private String firstName;
   private String lastName;
   private int age;
   private double salary;
   public Student() {}
   public Student(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 "Student[ " +
      "firstName = " + firstName +
      ", lastName = " + lastName +
      ", age = " + age +
      ", salary = " + salary +
      " ]";
   }
}

输出

Student[ firstName = Ravi, lastName = Chandra, age = 35, salary = 50000.0 ]

更新日期:2020 年 7 月 4 日

4K+ 浏览次数

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.