ObjectMapper引用jar包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9</version>
</dependency>
ObjectMapper属性配置
//序列化所有属性,对象中属性为null的时候,会打印该属性为null
objectMapper.setSerializationInclusion(Include.ALWAYS);
//序列化时,对象中属性为null的时候,会忽略该属性
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
//取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
//时间格式设置默认为true,会显示时间戳
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);
//美化输出,转换为格式化的json
mapper.enable(SerializationFeature.INDENT_OUTPUT);
//强制JSON 空字符串("")转换为null对象值:
mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
//允许序列化空的POJO类,否则序列化空对象是会抛出异常
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
//在遇到未知属性的时候不抛出异常。
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
//json中有新增的字段并且是实体类类中不存在的忽略
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//允许没有引号的字段名(非标准)出现。
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
//允许单引号(非标准)
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
//强制转义非ASCII字符
mapper.configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);
//如果是空对象的时候,不抛异常
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
ObjectMapper方法介绍
//对象转为字符串
String jsonStr = mapper.writeValueAsString(Object);
//对象转为byte数组
byte[] byteArr = mapper.writeValueAsBytes(Object);
//json字符串转为对象
Object object= mapper.readValue(jsonStr, Object.class);
//byte数组转为对象
Object object= mapper.readValue(byteArr, Object .class);
//字符串转list
List<T> list= objectMapper.readValue(jsonStr, new TypeReference<List<T>>() {});
或
List<T> list= mapper.readValue(jsonStr, List.class);
//字符串转map
Map<String, Object> map= mapper.readValue(jsonStr, Map.class);