Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson-链接@JsonValue和Map_Java_Json_Jackson - Fatal编程技术网

Java Jackson-链接@JsonValue和Map

Java Jackson-链接@JsonValue和Map,java,json,jackson,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 C

我有以下课程:

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
上的
@JsonValue
被忽略。据我所知,链接
@JsonValue
注释似乎存在一些问题。这是个错误还是我做错了什么


Jackson版本:2.6.2

@araqnid我想答案也是这个问题的答案。这同样适用吗?这是一个没有自定义密钥序列化程序的版本(无论如何都不需要),所以它不适用。可能是您遇到了一个刚刚为2.6.3修复的错误(实际上从今天开始)。这两种代码都应该有效;如果后者仍然不能与2.6.3兼容,请针对
jackson-databind
提交一个bug。
public class Container {
    private final Map<SomeKey, Object> data;

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