0

这是我的课

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;
}
4

1 回答 1

0

在序列化时,我认为不会有问题,因为T data它会保存一些真实对象的对象,并且像 Gson 这样的库将能够正确序列化它们,但是由于反序列化可能会出现问题不知道它必须以哪种类型进行反序列化。为此,您可能需要通过特定的Type参数,以便告诉库您要反序列化的类型。(注意:我主要与 Gson 合作,因此答案受此影响)

参考:https ://stackoverflow.com/a/7299718/1093333

于 2018-03-02T10:53:40.393 回答