Jackson - 全数据绑定
全数据绑定是指将 JSON 映射到任何 JAVA 对象。
//Create an ObjectMapper instance ObjectMapper mapper = new ObjectMapper(); //map JSON content to Student object Student student = mapper.readValue(new File("student.json"), Student.class); //map Student object to JSON content mapper.writeValue(new File("student.json"), student);
我们来看看简单的实际数据绑定。这里我们将把 JAVA 对象直接映射到 JSON,反之亦然。
在 C:\>Jackson_WORKSPACE 中创建一个名为 JacksonTester 的 java 类文件。
文件:JacksonTester.java
import java.io.File; import java.io.IOException; import com.fasterxml.jackson.core.JsonGenerationException; 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[]){ JacksonTester tester = new JacksonTester(); try { Student student = new Student(); student.setAge(10); student.setName("Mahesh"); tester.writeJSON(student); Student student1 = tester.readJSON(); System.out.println(student1); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void writeJSON(Student student) throws JsonGenerationException, JsonMappingException, IOException{ ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(new File("student.json"), student); } private Student readJSON() throws JsonParseException, JsonMappingException, IOException{ ObjectMapper mapper = new ObjectMapper(); Student student = mapper.readValue(new File("student.json"), Student.class); return student; } } 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: 10 ]
广告