gpt4 book ai didi

java - 多个 JsonCreator 注解方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:07 25 4
gpt4 key购买 nike

初始问题

是否可以有多个 @JsonCreator 方法,并让 jackson 根据方法定义检测应该使用哪一个?

@JsonCreator
public static StateOfComm factory(String id) {
return StateOfComm.valueOf(id);
}

@JsonCreator
public static StateOfComm factory(CustomType value) {
return StateOfComm.valueOf(value.getId());
}

更新

失败的 JSON(因为 id=null)如下:

{"comment":null, "processes":[{"stateOfComm":{"id":"CA"}}]}

以下作品:

 {"comment":null, "processes":[{"stateOfComm":"CA"}]}

最佳答案

我能够通过以下方式解析您问题中的两个 JSON 示例:

  1. 使用 jackson-modules-java8 版本 2.9.1 依赖
  2. 使用 -parameters 参数调用 java 8 编译器
  3. 为所有涉及的类引入所有参数构造函数
  4. 避免在静态创建方法和构造函数上使用@JsonProperty
  5. 定义类:

    class CustomType {
    private final String id;
    }

我的理解是 Jackson 在旧版本中无法区分多个创作者。例如。查看答案 here和 github 问题 here .在这种情况下,在 Java 8 的编译代码中使用参数名称的选项似乎有所帮助。

关于java - 多个 JsonCreator 注解方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com