已知和未知属性的@JsonIgnoreProperties用法

2022-09-01 09:45:54

我当前对忽略 JPA 实体的已知属性的注释是:

@JsonIgnoreProperties({"hibernateLazyInitializer", "handler","created","updated","createdBy","lastUpdatedBy"})

除了忽略这些类属性之外,我还希望忽略服务器接收的任何未知属性。我知道通过以下注释忽略未知属性的唯一方法:

@JsonIgnoreProperties(ignoreUnknown=true)

但是不知道如何将其添加到上面给出的当前注释中。我尝试了下面的多种方法ås,但似乎没有一个有效,我无法在线找到此方案的示例。

任何关于文档的例子或线索也会有所帮助。


答案 1

ignore 设置为 Notknown,并在 value 元素中定义要忽略的属性的名称:true

@JsonIgnoreProperties(ignoreUnknown = true, 
                      value = {"hibernateLazyInitializer", "handler", "created"})

它是如何工作的?

看看文档中的这句话(突出显示的是我的):

在最简单的形式中,批注如下所示:

@Entity

at 符号字符 () 向编译器指示接下来的内容是注释。在下面的示例中,注释的名称为:@Override

@Override
void mySuperMethod() { ... }

注释可以包含元素,这些元素可以命名或未命名,并且这些元素有值:

@Author(name = "Benjamin Franklin", date = "3/27/2003")
class MyClass() { ... }

@SuppressWarnings(value = "unchecked")
void myMethod() { ... }

如果只有一个名为 value 的元素,则可以省略该名称,如下所示:

@SuppressWarnings("unchecked")
void myMethod() { ... }

处理未知属性的其他方法

要忽略未知属性,您还可以执行以下操作:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

答案 2