[英]Deserialization json array with different objects - jackson/spring
我有一个奇怪的 json 数组字符串:
[
{
"schema": "Cancel",
"version": "1.0.0"
},
{
"mandatory": true,
"id": "uuid"
}
]
它看起来像它的两个不同对象的数组,例如:
class Object1 {
private String schema;
private String version;
}
和
class Object2{
private boolean mandatory;
private String id;
}
当我调用 Spring Rest 模板时,如:
restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(), ObjectFull[].class)
.getBody();
其中 ObjectFull 是 Object,其中包含来自前两个对象(Object1、Object2)的字段。
我得到两个对象的数组。 第一个有一些字段,第二个有其他字段。 一切正常。
但是我发现使用objectFull[0].getSchema()
构建响应不够好。
是否有任何选项可以通过使用 Jackson 注释将这两个 object 组合成一个彻底的反序列化过程?
而不是ObjectFull[]
的两个元素数组得到所有字段的简单ObjectFull
?
因为 json 是 List 的表示形式,所以在所有字段都填满的情况下,您不能将其中的两个对象反序列化为一个。 如果您确定您将始终收到一个包含两个对象(相互补充)的列表,您可以编写一个简单的 function 接收该 json 并读取列表,然后创建一个 ZA8CFDE6331BD59EB2AC96F8911C4B66 中的字段来自两个列表元素,并返回 object。
处理的方法是创建class:
导入 com.fasterxml.jackson.databind.JsonDeserializer;
公共 class ObjectFull 扩展 JsonDeserializer
并实现所需的方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.