有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    序列化时,我认为不会有问题,因为T data将保存一些真实对象的对象,而像Gson这样的库将能够正确地序列化它们,但是反序列化可能会有问题,因为它不知道必须反序列化的类型。为此,您可能需要传递特定的Type,以便告诉库您试图反序列化的类型。(注:我主要与Gson合作,因此答案受此影响)

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