1. ObjectMapper介绍
ObjectMapper是com.fasterxml.jackson.databind包下的程序, 该对象是当下数据转化的主流API.
2. 对象转json、json转对象原理
- .对象转化JSON时,其实调用的是对象身上的getXxx()方法
- 获取所有的geXxx()方法-----之后去掉get-----首字母小写
- json串中的key就是该属性.value就是属性的值
- 定义转化对象的类型(XXXX.class)
- 利用反射机制实例化对象 class.forName(class) 现在的属性都为null
- 将json串解析
- 根据json串中的属性的名字,之后调用对象的**(set+首字母大写)setXxx方**法实现赋值
3. 封装ObjectMapperUtil
该方法的主要的作用 就是将对象与json实现灵活的转化,并且内部优化了异常
package com.jt.Util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class ObjectMapperUtil {
//1. 定义mapper对象
private static final ObjectMapper MAPPER = new ObjectMapper();
//2. 将对象转化为JSON
public static String toJSON(Object target) {
try {
return MAPPER.writeValueAsString(target);
} catch (JsonProcessingException e) {
//检查异常转化为运行时异常
e.printStackTrace();
throw new RuntimeException(e);
}
}
//3.将JSON串转化为对象 用户传递什么类型,就能返回什么对象
public static <T> T toObj(String json,Class<T> target) {
try {
return MAPPER.readValue(json, target);
} catch (JsonProcessingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}