杰克逊 - 第一个应用程序



在了解 jackson 库的详细内容之前,我们先看一个实际应用。在此示例中,我们创建了 Student 类。我们将用学生详细信息创建一个 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

现在运行 jacksonTester 来查看结果

C:\Jackson_WORKSPACE>java JacksonTester

验证输出

Student [ name: Mahesh, age: 21 ]
{
  "name" : "Mahesh",
  "age" : 21
}

步骤 须知

以下是需要考虑的重要步骤。

步骤 1:创建 ObjectMapper 对象。

创建 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);
广告