杰克逊 - @JsonValue和地图的链接

时间:2015-10-10 16:55:03

标签: java json jackson

我有以下课程:

public class SomeKey {
    private final String name;

    @JsonValue
    public String getName() {
        return name;
    }

    @JsonCreator
    public SomeKey(final String name) {
        this.name = name;
    }
}

我有以下容器:

public class Container {
    @JsonSerialize
    private final Map<SomeKey, Object> data;
}

在这种情况下,函数SomeKey.getName()用于序列化地图的键,如预期的那样。但是,如果我按如下方式更改Container,则使用函数SomeKey.toString()

public class Container {
    private final Map<SomeKey, Object> data;

    @JsonValue
    public Map<SomeKey, Object> data() {
        return data;
    }
}

换句话说,@JsonValue上的SomeKey会被忽略。据我所知,链接@JsonValue注释似乎存在一些问题。这是一个错误还是我在这里做错了什么?

杰克逊版本:2.6.2

0 个答案:

没有答案