如何使用jackson序列化通用对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用jackson序列化通用对象相关的知识,希望对你有一定的参考价值。
这是我的班级
public class Response<T> {
private final T data;
private final String error;
我只能改变一堂课。 jackson
可以序列化它而不配置objectMapper
?
编辑:我在spring mvc @RestController中使用此对象作为方法结果参数。杰克逊的objectMapper.canSerialize(Response.class)返回false。
编辑:我已经这样修复了:
公共课回应{
private T data;
private String error;
@JsonIgnore
@JsonTypeInfo(
use = JsonTypeInfo.Id.CLASS,
include = JsonTypeInfo.As.PROPERTY
)
private Class<T> type;
...
@JsonIgnore
public Class<T> getType() {
return type;
}
答案
在序列化时,我认为不存在问题,因为T data
将保留一些真实对象的对象,而像Gson这样的库将能够正确地序列化它们,但是由于它不会导致反序列化的问题。不知道它必须反序列化的类型。为此,您可能需要传递特定的Type
,以便告诉库您要尝试反序列化的类型。(注意:我主要与Gson合作,因此答案受到影响)
参考:https://stackoverflow.com/a/7299718/1093333
以上是关于如何使用jackson序列化通用对象的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jackson 中将对象序列化为 ObjectNode 的值?
如何使用 Jackson 反序列化来自 json 对象的对象数组