【发布时间】:2022-01-22 22:49:52
【问题描述】:
我有一个对象列表,每个对象都有指定的字段(变量类型),所以我想我将创建一个主类(超类),其中包含共享元素(变量)和特定类型变量的两个子类. 我想将所有子类反序列化为超类的类型,以便我可以将所有这些 Json 放入相同对象的列表中。
这是我的 Json 示例
[ { "query": "age", "type": "numeric", "min": 5, "max": 99 }, {“查询”:“诊断”,“类型”:“字符串”,“输入”:[“husten”, "schnupfen"] } ]
我写的反序列化代码是:
public class Query{
private String query;
private String type;
// Getters and Setters and constructor
}
public class QueryString extends Query implements Serializable {
private List<String> in;
private String like;
// Getters and Setters and constructor
}
public class QueryNum extends Field implements Serializable {
private Number min;
private Number max;
// Getters and Setters and constructor
}
使用 ObjectMapper 的序列化按预期工作,但是编译器通过反序列化给我一个无法识别的值(这是我的子类的字段)。
我想得到一个对象列表(查询) 包含 QueryString 和 QueryNum 的列表。
Java 中的 Jackson Json 有可能吗?
对于我使用的反序列化:
ObjectMapper mapper = new ObjectMapper(); List<Query> queries= Arrays.asList(mapper.readValue(JsonString, Query[].class));
提前致谢
【问题讨论】:
标签: java json serialization jackson deserialization