在我的REST应用程序中,我使用的是quickxml来序列化和反序列化POJO到JSON。在这样的情况下,我遇到像List这样的集合的问题。
public class JsonRequest {
public int anumber;
public String astring;
public List<XyzClass> data;
}
属性 anumber 和 astring 来回转换就好了,没有任何注释。对于** data *,虽然编译器可以看到List元素是(应该是)XyzClass,但是这些信息对于jackson框架是不可用的,所以它不知道在反序列化元素时要使用哪个类。
出于某种原因,我无法理解用于解决此问题的注释的文档。 @JsonDeserialize 注释对此没有帮助。有人能指出我正确的方向吗?
答案 0 :(得分: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)的效果,因为我错过了< strong> @JsonDeserilize 有 contentAs 选项。
希望此帖可以为其他人节省同样的麻烦。