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

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

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

  1. JsonMapper mapper = JsonMapper.builder()
  2. .enable(JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS).build();
  3. final String testJson = "{\"key\":NaN}";
  4. JsonNode node = mapper.readTree(testJson)
csga3l58

csga3l581#

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

  1. public class KeyPojo {
  2. private Double key;
  3. @JsonSetter
  4. public void setKey(Double key) {
  5. if (Double.isNaN(key)) {
  6. this.key = null;
  7. } else {
  8. this.key = key;
  9. }
  10. }
  11. }

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

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

现在,keyobj.key包含空值。

展开查看全部

相关问题