我正在请求中使用来自另一个模块的类。
public class KeyInput {
@NotNull
private Long id;
@NotNull
private String startValue;
@NotNull
private String endValue;
}
由于模块不包含jackson库,我无法在此类上放置@JsonIgnoreProperties(ignoreUnknown = true)
注释。
将其放置在请求类中使用的字段级别上并没有成功。
@JsonIgnoreProperties(ignoreUnknown = true)
private List<KeyInput> keys;
以下是传入的请求。请注意问题的来源,即两个字段(name 和 type),它们在 KeyInput 类中未声明。
{
"id": 166,
"name": "inceptionDate",
"type": "DATE",
"startValue": "22",
"endValue": "24"
}
如果这个类不在我的包中,我该如何告诉Jackson忽略未知字段?
P.S: 我知道我可以将键作为JSON字符串获取,并使用ObjectMapper进行序列化(通过将配置DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
设置为false),但我在这里寻找一种更清晰的解决方案。
另外,在我的类中放置这些字段并从未使用它们是另一种不好的解决方案。
MixIn
功能。看一些例子:动态添加 fasterxml 注释?,如何使用 Jackson Mixin 将 Json 映射到 Proto?,Jackson 条件 @JsonUnwrapped。 - Michał Ziober