1. java jackson 转换
a.需要导入jar
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.7</version>
</dependency>
b.相互转换
//数据准备
List<Student> list=new ArrayList<Student>();
list.add(new Student(1,1000d,"旅游",new Date()));
list.add(new Student(2,1500d,"玩电脑游戏",new Date()));
list.add(new Student(3,3000d,"看电影",new Date()));
Student student=new Student(1,1000d,"旅游",new Date());
//ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现。
ObjectMapper mapper=new ObjectMapper();
//A.javaBean---->JSON字符串
//1.writeValueAsString
String json1 = mapper.writeValueAsString(student);
//2.writeValue
StringWriter writer = new StringWriter();
mapper.writeValue(writer, student);
String string = writer.toString();
//B.JSON字符串----》javaBean
Student stu = mapper.readValue(json1, Student.class);
//C.list---->JSON字符串
String json2 = mapper.writeValueAsString(list);
System.out.println(json2);
//D.JSON字符串---》list
//1.JavaType
JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, Student.class);
List<Student> stuList=(List<Student>) mapper.readValue(json2, javaType);
System.out.println(stuList);
//2.TypeReference
List<Student> readValue = mapper.readValue(json2, new TypeReference<List<Student>>() {});
System.out.println(readValue);