1、添加依赖,在Maven的pom.xml文件中添加以下依赖。
代码语言:javascript复制1 <dependency>
2 <groupId>com.fasterxml.jackson.core</groupId>
3 <artifactId>jackson-databind</artifactId>
4 <version>2.10.2</version>
5 </dependency>
如果是单独加这个依赖包,使用上面的即可。如果是使用Springboot开发项目,那么这个依赖包是直接封装好的,不用单独加了,自己可以使用工具进行查看,看看是否有这个依赖包就行了,如下所示:
2、Java中使用Jackson,对JSON和对象进行转换。工具类如下所示:
代码语言:javascript复制 1 package com.bie.utils;
2
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import com.fasterxml.jackson.databind.JavaType;
5 import com.fasterxml.jackson.databind.ObjectMapper;
6 import com.bie.nationalpolicy.po.Student;
7
8 import java.util.ArrayList;
9 import java.util.List;
10
11 /**
12 * @ProjectName: nationalpolicy
13 * @Package: com.bie.utils
14 * @ClassName: JsonUtils
15 * @Author: biehl
16 * @Description: ${description}
17 * @Date: 2020/2/28 10:30
18 * @Version: 1.0
19 */
20 public class JsonUtils {
21
22
23 // 定义jackson对象
24 private static final ObjectMapper MAPPER = new ObjectMapper();
25
26 /**
27 * 将对象转换成json字符串。
28 * <p>Title: pojoToJson</p>
29 * <p>Description: </p>
30 *
31 * @param data
32 * @return
33 */
34 public static String objectToJson(Object data) {
35 try {
36 String string = MAPPER.writeValueAsString(data);
37 return string;
38 } catch (JsonProcessingException e) {
39 e.printStackTrace();
40 }
41 return null;
42 }
43
44 /**
45 * 将json结果集转化为对象
46 *
47 * @param jsonData json数据
48 * @param beanType 对象中的object类型
49 * @return
50 */
51 public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
52 try {
53 T t = MAPPER.readValue(jsonData, beanType);
54 return t;
55 } catch (Exception e) {
56 e.printStackTrace();
57 }
58 return null;
59 }
60
61 /**
62 * 将json数据转换成pojo对象list
63 * <p>Title: jsonToList</p>
64 * <p>Description: </p>
65 *
66 * @param jsonData
67 * @param beanType
68 * @return
69 */
70 public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
71 JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
72 try {
73 List<T> list = MAPPER.readValue(jsonData, javaType);
74 return list;
75 } catch (Exception e) {
76 e.printStackTrace();
77 }
78 return null;
79 }
80
81
82 public static void main(String[] args) {
83 // Java内部类创建对象,要想直接创建内部类的对象,必须使用外部类的对象来创建内部类对象
84 List<Student> students = new ArrayList<Student>();
85 for (int i = 0; i < 20; i ) {
86 Student student = new Student();
87 student.setId(1008611 i);
88 student.setName("张三三" i);
89 student.setAddress("北京市西城区什刹海街道西什库大街31号院" i);
90
91 // 1、将实体类对象转换为json格式
92 String objectToJson = JsonUtils.objectToJson(student);
93 System.out.println("1、将实体类对象转换为json格式: " objectToJson);
94
95 students.add(student);
96 }
97
98 // 2、将Json格式的数据转换为实体类
99 String jsonToPojo = JsonUtils.objectToJson(students);
100 System.out.println("2、将Json格式的数据转换为实体类: " jsonToPojo);
101
102 // 3、将json数据转换成pojo对象list
103 List<Student> jsonToList = JsonUtils.jsonToList(jsonToPojo, Student.class);
104 System.out.println("3、将json数据转换成pojo对象list: " jsonToList.toString());
105 }
106 }
创建一个实体类,如下所示:
代码语言:javascript复制 1 package com.feixian.nationalpolicy.po;
2
3 /**
4 *
5 */
6 public class Student {
7
8 private int id;
9 private String name;
10 private String address;
11
12 public int getId() {
13 return id;
14 }
15
16 public void setId(int id) {
17 this.id = id;
18 }
19
20 public String getName() {
21 return name;
22 }
23
24 public void setName(String name) {
25 this.name = name;
26 }
27
28 public String getAddress() {
29 return address;
30 }
31
32 public void setAddress(String address) {
33 this.address = address;
34 }
35
36 public Student(int id, String name, String address) {
37 this.id = id;
38 this.name = name;
39 this.address = address;
40 }
41
42 public Student() {
43 }
44
45 @Override
46 public String toString() {
47 return "Student{"
48 "id=" id
49 ", name='" name '''
50 ", address='" address '''
51 '}';
52 }
53 }
测试运行效果,如下所示: