使用jackson库解析json时将nan值转换为null

35g0bw71  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(604)

将json字符串解析为jsonnode对象,并将其中的所有nan值转换为null的最佳方法是什么?下面的代码将nan转换为doublenode nan。我试图注册一个自定义反序列化程序,但它没有接收到nan节点。

JsonMapper mapper =  JsonMapper.builder()
            .enable(JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS).build();

final String testJson =  "{\"key\":NaN}";
JsonNode node = mapper.readTree(testJson)
csga3l58

csga3l581#

一种方法是如下所示
在setter方法上用@jsonsetter创建一些pojo类。

public class KeyPojo {

        private Double key;

        @JsonSetter
        public void setKey(Double key) {
            if (Double.isNaN(key)) {
                this.key = null;
            } else {
                this.key = key;
            }
        }
    }

并像下面那样解析json文本。

KeyPojo keyObj = mapper.readValue(testJson, KeyPojo.class);

现在,keyobj.key包含空值。

相关问题