我正在使用lombok和jackson一起使用。我需要用这个结构预处理一个json。顺便说一下,我不能改变json结构。
[
{
"value1": "INC12345",
"value2": "12345",
"task": [
{
"status": "A",
"typeOfClass": "Membership"
},
{
"status": "D",
"reverseEnum": 1,
"typeOfClass": "Reverse"
}
]
}
]
问题出在哪里?好吧,我需要在收到请求时处理任务的列表,用属性定义每个任务的对象类型。typeOfClass
因为我使用了不同类型的类,可以接收一个Membership的类型,一个Reverse的类型等等,而这些类没有任何共同点。这是我的java类。
@Data
@JsonDeserialize(builder = Incident.IncidentBuilder.class)
@Builder(builderClassName = "IncidentBuilder", toBuilder = true)
public class Incident {
@NotNull
private String value1;
@NotNull
private BigInteger value2;
@NotNull
private List<Object> task;
@JsonPOJOBuilder(withPrefix = "")
public static class IncidentBuilder {
}
}
我在其他属性上没有问题,但是当我在调试时,我可以看到任务列表是一个很好的类。LinkedList
所以我需要对该列表进行预处理,以创建一个包含特定类型对象的列表。我知道如何使用jackson创建一个自定义的反序列器,我正在寻找一个类似的解决方案,使用lombok来避免大量的代码。
我想一个构建器可以帮助我,但是我已经迷失了方向,不能为我的问题写一个好的解决方案。
在 Java
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ List
是一个对象的集合,它们属于同一个 class
型。
由于您的 Type
元素包含了它所属的对象,我认为,有一个顶层的父类,它是所有的 type
对象。
所以,与其将它声明为 List<Object> task
我建议你使用 List<ParentClass> task
.