0

在我的 REST 应用程序中,我使用 fasterxml 将 POJO 序列化和反序列化为 JSON。在这种情况下,我遇到了 List 等集合的问题。

public class JsonRequest {
    public int anumber;
    public String astring;
    public List<XyzClass> data;
}

属性anumberastring来回转换就好了,没有任何注释。对于 **data*,虽然编译器可以看到 List 元素是(应该是)XyzClass,但杰克逊框架无法获得该信息,因此它不知道在反序列化元素时要使用什么类。

出于某种原因,我无法理解有关使用哪个注释来解决此问题的文档。@JsonDeserialize注释对此没有帮助。谁能指出我正确的方向?

4

1 回答 1

0

经过一番研究,我终于找到了如何使这项工作。

public class JsonRequest {
    public int anumber;
    public String astring;
    @JsonDeserialize(contentAs = XyzClass.class) // <-- Added    
    public List<XyzClass> data;
}

为了回答上面评论中的问题,XyzClass的代码只是一个微不足道的 POJO,例如:

public class XyzClass {
    public String name;
    public int age;
}

让我绊倒的是,我正在寻找不存在的@JsonDeserializeContentAs(class = XyzClass.class)效果的注释,因为我错过了@JsonDeserilize具有contentAs选项的事实。

希望这篇文章可以为其他人省去同样的麻烦。

于 2017-04-30T15:51:18.427 回答