【发布时间】:2016-12-14 21:42:49
【问题描述】:
考虑一个包含一个字符串和两个数组的 JSON 表示。例如,
{
"type" : "A",
"ListA" : []
"ListB" : [3, 4, 5]
}
在上述情况下,type 是必填字段,但根据 type 的值进行反序列化有条件地需要ListA 和ListB。换句话说,ListA 仅在 type 具有值 A 时才需要,而 ListB 仅在 type 具有值 B 时才需要。
目前,我在 Jackson 和 Java 中工作,我已经能够通过创建 POJO 来实现使 type 字段成为强制性字段,如下所示:
public class Example {
@JsonProperty(required = true)
String type;
// getter and setter auto-generated
但我不能将另一个@JsonProperty(required = true) 附加到ListA 或ListB,因为它取决于type 的值。
如何根据type 的值有条件地要求ListA 和ListB 进行反序列化?
此外,我还将执行其他检查,例如 ListA 或 ListB 是否为空数组 (size == 0)。
【问题讨论】: