我有以下课程:
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