例如,我在购物车中列出了一些产品清单,例如电影票,汽车共享和新书。
[
{
"name": "Cinema Ticket"
},
{
"name": "Car Sharing",
"properties": { ... }
},
{
"name": "New Book",
}
]
如您所见,并非所有产品都具有properties
。
注意:该字段是多态的。
我可以使用杰克逊将“不存在的”字段properties
转换为null
还是最好更改api?
如果可以的话,该怎么做?
杰克逊版本:2.10.1
感谢答案!
答案 0 :(得分:0)
我想你有类似的东西:
public class BaseProduct {
public String name;
}
public class CarSharing extends BaseProduct {
public String properties;
}
public class Book extends BaseProduct {
}
除了将 properties 字段设置为null之外,您还可以使用Jackson多态功能不显示该字段。像这样:
@JsonTypeInfo(use = JsonTypeInfo.Id.MINIMAL_CLASS, include = JsonTypeInfo.As.PROPERTY, property = "type")
public class BaseProduct {
public String name;
}
输出为:
[
{
"type": ".Book",
"name": "Book name"
},
{
"type": ".CarSharing",
"name": "Car share name",
"properties": "a property field"
}
]