📜  在Java解析 JSON 时如何忽略未知属性?(1)

📅  最后修改于: 2023-12-03 15:37:36.497000             🧑  作者: Mango

在Java解析 JSON 时如何忽略未知属性?

在我们使用Java解析JSON时,很多时候我们并不知道JSON字符串中可能会包含哪些属性,这就需要我们忽略未知属性。

下面将介绍如何使用Jackson库,在Java解析JSON时忽略未知属性。

1. Maven依赖

首先要在项目中引入Jackson库的依赖。在Maven项目中,我们可以在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.9</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.9</version>
</dependency>
2. 使用ObjectMapper

在Java中解析JSON通常使用ObjectMapper来实现。

ObjectMapper mapper = new ObjectMapper();
MyClass obj = mapper.readValue(jsonString, MyClass.class);

MyClass是我们要把JSON字符串转换成的Java类。如果JSON中包含了MyClass没有的属性,那么默认情况下jackson-databind库会抛出UnrecognizedPropertyException异常。

为了忽略未知属性,我们只需要在ObjectMapper中设置一下属性即可。

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
MyClass obj = mapper.readValue(jsonString, MyClass.class);

在这里,我们通过ObjectMapper的configure()方法来设置一个DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES的值为false,表明要忽略未知属性。

3. 结论

通过以上代码,我们可以很容易地忽略未知属性解析JSON字符串。如果你还不熟悉Jackson库,请务必多多研究,这是Java中最流行的JSON解析库之一。

参考文献:

  1. https://www.baeldung.com/jackson-ignore-properties-on-serialization
  2. https://www.baeldung.com/jackson-databind-json-properties-unknown-fields