这是我的班级
public class Response<T> {
private final T data;
private final String error;
我只能改变一个班级。可jackson
序列化而无需配置objectMapper
?
编辑: 我在Spring mvc @RestController中使用此对象作为方法结果参数。而jackson的objectMapper.canSerialize(Response.class)返回false。
编辑: 我用这种方式解决了这个问题:
public class Response {
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;
}
答案 0 :(得分:0)
在序列化时,我认为不存在问题,因为T data
将保留一些真实对象的对象,而像Gson这样的库将能够正确地序列化它们,但是反序列化可能存在问题由于它不知道它必须反序列化的类型。为此,您可能需要传递特定的Type
,以便告诉库您要尝试反序列化的类型。(注意:我主要与Gson合作,因此答案会受到影响)