dromara / hutool

🍬A set of tools that keep Java sweet.
https://hutool.cn
Other
29.24k stars 7.53k forks source link

cn.hutool.json.JsonArray没有判断ignoreNullValue配置 #3759

Closed sadmonsterr closed 1 month ago

sadmonsterr commented 1 month ago

版本情况

JDK版本: openjdk_8_201 hutool版本: 5.8.32

问题描述

image 将一个包含null值的数组序列化为cn.hutool.json.JsonArray时 cn.hutool.json.JsonArray类中的addRaw(Object object)方法没有判断ignoreNullValue配置,导出null最终被转换为了JSONNull对象 参考cn.hutool.json.JsonObject中的set(String key, Object value, Filter<MutablePair<String, Object>> filter, boolean checkDuplicate)方法,就判断了ignoreNullValue配置 image

  1. 复现代码
// 默认的配置是true,应该转为null的
String jsonArrayStr = "[null]";
JSONArray jsonArray  = JSONUtil.toBean(jsonArrayStr, JSONArray.class, true);
assert jsonArray.get(0) == JSONNull.NULL;
  1. 堆栈信息 无
  2. 测试涉及到的文件(注意脱密) 无
looly commented 1 month ago

确认bug,5.8.33修复此问题。

修复见:https://github.com/dromara/hutool/commit/be98b46349c6649195e01b5ca39f281016d9f4e6