Jackson - 对象序列化


让我们将 java 对象序列化为 json 文件,然后读取该 json 文件以获取该对象。在此示例中,我们创建了 Student 类。我们将创建一个 Student.json 文件,其中包含 Student 对象的 json 表示形式。

在C:\>Jackson_WORKSPACE中创建一个名为 JacksonTester 的 java 类文件。

文件:JacksonTester.java

导入java.io.File;
导入java.io.IOException;

导入 com.fasterxml.jackson.core.JsonGenerationException;
导入 com.fasterxml.jackson.core.JsonParseException;
导入 com.fasterxml.jackson.databind.JsonMappingException;
导入 com.fasterxml.jackson.databind.ObjectMapper;

公共类 JacksonTester {
   公共静态无效主(字符串参数[]){
      JacksonTester 测试器 = new JacksonTester();
      尝试 {
         学生学生=新学生();
         学生.setAge(10);
         学生.setName("Mahesh");
         测试者.writeJSON(学生);

         学生student1 = tester.readJSON();
         System.out.println(student1);

      } catch (JsonParseException e) {
         e.printStackTrace();
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   私人无效 writeJSON(学生学生)抛出 JsonGenerationException,JsonMappingException,IOException{
      ObjectMapper 映射器 = new ObjectMapper();	
      mapper.writeValue(new File("student.json"), Student);
   }

   私人学生 readJSON() 抛出 JsonParseException、JsonMappingException、IOException{
      ObjectMapper 映射器 = new ObjectMapper();
      Student Student = mapper.readValue(new File("student.json"), Student.class);
      回国学生;
   }
}

班级学生{
   私有字符串名称;
   私有整数年龄;
   公共学生(){}
   公共字符串 getName() {
      返回名称;
   }
   公共无效setName(字符串名称){
      this.name = 名称;
   }
   公共 int getAge() {
      返回年龄;
   }
   公共无效setAge(int年龄){
      this.age = 年龄;
   }
   公共字符串 toString(){
      return "学生[姓名:"+姓名+",年龄:"+年龄+"]";
   }	
}

验证结果

使用javac编译器编译类,如下所示:

C:\Jackson_WORKSPACE>javac JacksonTester.java

现在运行 jacksonTester 查看结果:

C:\Jackson_WORKSPACE>java JacksonTester

验证输出

Student [ name: Mahesh, age: 10 ]