在进入jackson库的详细信息之前,让我们看一下应用程序的运行情况.在这个例子中,我们创建了Student类.我们将创建一个包含学生详细信息的JSON字符串,并将其反序列化为student对象,然后将其序列化为JSON字符串.
在 C:\\创建一个名为JacksonTester的java类文件\\> Jackson_WORKSPACE .
文件: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 }
以下是需要考虑的重要步骤.
创建ObjectMapper对象.它是一个可重用的对象.
ObjectMapper mapper = new ObjectMapper();
使用readValue()方法从JSON获取Object.将json字符串/源json字符串和对象类型作为参数传递.
//Object to JSON Conversion Student student = mapper.readValue(jsonString, Student.class);
使用writeValueAsString()方法获取对象的JSON字符串表示.
//Object to JSON Conversion jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);