java如何使用jackson序列化通用对象
这是我的课
public class Response<T> {
private final T data;
private final String error;
我只能换一门课。无需配置objectMapper
就可以jackson
序列化它吗
编辑: 我在SpringMVC@RestController中将此对象用作方法结果参数。还有jackson的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;
}
# 1 楼答案
序列化时,我认为不会有问题,因为
T data
将保存一些真实对象的对象,而像Gson这样的库将能够正确地序列化它们,但是反序列化可能会有问题,因为它不知道必须反序列化的类型。为此,您可能需要传递特定的Type
,以便告诉库您试图反序列化的类型。(注:我主要与Gson合作,因此答案受此影响)参考:https://stackoverflow.com/a/7299718/1093333