[bug修复] JsonUtil.toBean泛型数组类型丢失

This commit is contained in:
winlans
2025-02-27 11:45:51 +08:00
parent bd94c09e91
commit 732bea6d0b
4 changed files with 76 additions and 6 deletions

View File

@@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.json.test.bean.Price;
import cn.hutool.json.test.bean.UserA;
@@ -290,4 +292,27 @@ public class JSONUtilTest {
final String jsonStr = JSONUtil.toJsonStr(userId);
assertEquals("{}", jsonStr);
}
/**
* 类型引用数组泛型丢失
*/
@Test
public void issue3873Test() {
String json = "{\"results\":[{\"uid\":\"1\"}],\"offset\":0,\"limit\":20,\"total\":0}";
Results<Index> deserialize = JSONUtil.toBean(json, (new TypeReference<Results<Index>>() {
}), false);
assertEquals(Results.class, deserialize.getClass());
assertEquals(ArrayUtil.getArrayType(Index.class), deserialize.results.getClass());
}
@Data
public static class Results<T> {
public T[] results;
}
@Data
public static class Index {
public String uid;
}
}