java json 转换为对象-使用Jackson的ObjectMapper字符串与Java对象之间的转换时
发布时间:2023-06-11 07:08 浏览次数:次 作者:佚名
import com.fasterxml.jackson.databind.json.JsonMapper;
JsonMapper mapper = JsonMapper.builder() .enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES).disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) .build();
使用Jackson的ObjectMapper进行JSON字符串与Java对象之间的转换时,可以通过一些配置来控制它的行为。以下是一些常用的设置:
1. `objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL)`: 这个设置会让ObjectMapper在序列化(将对象转换为JSON字符串)时忽略那些值为null的属性。这样,生成的JSON字符串就不会包含那些值为null的属性了。
2. `objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)`: 这个设置会让ObjectMapper在反序列化(将JSON字符串转换为对象)时忽略那些在对象的类定义中不存在的属性。这样java json 转换为对象,如果JSON字符串中包含一些未知的属性,ObjectMapper就不会抛出异常了。
3. `objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true)`: 这个设置会让ObjectMapper在处理属性名时忽略大小写。这样java json 转换为对象,JSON字符串中的属性名就可以是任意大小写了,ObjectMapper都能正确地匹配到对象的属性。
以上只是一些常用的设置,实际上ObjectMapper还有许多其他的配置项,可以根据需要进行设置。同时,也可以为ObjectMapper添加一些自定义的序列化器或反序列化器,以实现更复杂的转换逻辑。