杰克逊反序列化为联合类

时间:2017-05-29 12:26:56

标签: java json serialization jackson

我有一个带有自定义getter的对象,它基于构造函数参数实现业务逻辑,例如

// Constructor
Graph(int v)
{
    V = v;
    adj = new LinkedList<Integer>[v];
    for (int i=0; i<v; ++i)
        adj[i] = new LinkedList<Integer>();
}

序列化为class Test { private int number; Test(int number) { this.number = number; } public boolean isEven() { return number % 2 == 0; } }

我想反序列化此对象,以便创建一个基于序列化值返回isEven()的代理。使用杰克逊可以这样吗?

1 个答案:

答案 0 :(得分:0)

如果我理解了这个问题,可以使用基于属性的静态@JsonCreator方法:

public class Test {
    private int number;
    ...

        @JsonCreator
        public static Test fromJson(@JsonProperty("even") Boolean isEven) {
            return new Test(isEven ? 2 : 1);
        }
}