jackson使用心得记录

本文深入探讨了Jackson库在Java中进行JSON数据转换的方法,包括将JSON字符串转化为Java对象和将Java对象转化为JSON字符串,并详细说明了一些常用配置选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=large][b]一.jackson一般的使用默认的配置:[/b][/size]

[b]1.json字符串转化为对应的java类[/b]
public static <T> T transferToObj(String jsonString, Class<T> valueType) {
if (StringUtil.isBlank(jsonString)) {
throw new IllegalArgumentException(
"[Assertion failed] - the object argument must be blank");
}

T value = null;
try {
ObjectMapper mapper = new ObjectMapper();
value = mapper.readValue(jsonString, valueType);
} catch (JsonParseException e) {
ExceptionUtil.caught(e, "jsonString=[" + jsonString + "]");
} catch (JsonMappingException e) {
ExceptionUtil.caught(e, "jsonString=[" + jsonString + "]");
} catch (IOException e) {
ExceptionUtil.caught(e, "jsonString=[" + jsonString + "]");
}

return value;
}

[b]2.java类转化为json字符串[/b]
public static <T> String transfer2JsonString(T value) {
ObjectMapper mapper = new ObjectMapper();
StringWriter sw = new StringWriter();
JsonGenerator gen;
try {
gen = new JsonFactory().createGenerator(sw);
mapper.writeValue(gen, value);
gen.close();
} catch (IOException e) {
ExceptionUtil.caught(e, "value=[" + value + "]");

}

return sw.toString();
}

[size=large][b]二.一些我用到的配置[/b][/size]
[b]1.对于json字符串转java对象[/b]
......
ObjectMapper mapper = new ObjectMapper();
//在反序列化的时候,如果不识别的字段忽略
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//反序列化时候,如果json串中的字段出现String("")或者null的就把java对应属性设置为Null
mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
value = mapper.readValue(jsonString, valueType);
..........

除了DeserializationFeature,还可以设置SerializationFeature也就是序列化的属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值