【Java】使用 fasterxml.jackson 反序列化的一个注意事项

发布时间 2023-06-28 18:29:28作者: 南国微光

我们在对接接口时,不时会遇到以 Json 格式返回数据的接口。后端解析此类接口返回数据时,不免需要进行反序列化以获取到需要的数据对象。

常用的反序列化工具有 Fastjson、Jackson、Gson。这三种都是不错的 Json 处理工具,我这里较常用的是 Jackson。

使用 Jackson 反序列化:

  1. 添加 maven 依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>xx.xx.xx</version>
</dependency>

  2. 创建 ObjectMapper 对象,并进行解析方式的配置

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

  其中,configure 方法配置该 ObjectMapper 对象解析 Json 字符串的方式。DeserializationFeature 以枚举方式给出了 ObjectMapper 的配置方式。该方法可由对应的 enable 或 disable 取代,注意对应的状态字即可。

  3. 使用 ObjectMapper 的 readValue 方法进行 反序列化,将 Json 字符串转化成指定类的对象

DataResult dataResult = objectMapper.readValue(JsonStr, DataResult.class);

最近在使用