Jackson - 第一个应用

  • 简述

    在进入Jackson库的细节之前,让我们先看看一个正在运行的应用程序。在此示例中,我们创建了学生类。我们将创建一个包含学生详细信息的 JSON 字符串,并将其反序列化为学生对象,然后将其序列化为 JSON 字符串。
    C:\>Jackson_WORKSPACE 中创建一个名为“JacksonTester”的 Java 类文件。
    文件: JacksonTester.java
    import java.io.IOException;
    import com.fasterxml.jackson.core.JsonParseException;
    import com.fasterxml.jackson.databind.JsonMappingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    public class JacksonTester {
       public static void main(String args[]){
       
          ObjectMapper mapper = new ObjectMapper();
          String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
          
          //map json to student
          try{
             Student student = mapper.readValue(jsonString, Student.class);
             
             System.out.println(student);
             
             jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
             
             System.out.println(jsonString);
          }
          catch (JsonParseException e) { e.printStackTrace();}
          catch (JsonMappingException e) { e.printStackTrace(); }
          catch (IOException e) { e.printStackTrace(); }
       }
    }
    class Student {
       private String name;
       private int age;
       public Student(){}
       public String getName() {
          return name;
       }
       public void setName(String name) {
          this.name = name;
       }
       public int getAge() {
          return age;
       }
       public void setAge(int age) {
          this.age = age;
       }
       public String toString(){
          return "Student [ name: "+name+", age: "+ age+ " ]";
       }
    }
    
    验证结果
    使用 javac 编译器编译类,如下所示:
    
    C:\Jackson_WORKSPACE>javac JacksonTester.java
    
    现在运行Jackson测试器以查看结果:
    
    C:\Jackson_WORKSPACE>java JacksonTester
    
    验证输出
    
    Student [ name: Mahesh, age: 21 ]
    {
      "name" : "Mahesh",
      "age" : 21
    }
    
  • 要记住的步骤

    以下是这里要考虑的重要步骤。

    步骤 1:创建对象映射器对象。

    创建 ObjectMapper 对象。它是一个可重用的对象。
    
    ObjectMapper mapper = new ObjectMapper();
    

    步骤 2:将 JSON 反序列化为对象。

    使用 readValue 方法从 JSON 中获取对象。将 json 字符串/json 字符串和对象类型的源作为参数传递。
    
    //Object to JSON Conversion
    Student student = mapper.readValue(jsonString, Student.class);
    

    步骤 3:将对象序列化为 JSON。

    使用 writeValueAsString 方法获取对象的 JSON 字符串表示形式。
    
    //Object to JSON Conversion      
    jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);