diff --git a/hutool-json/src/test/java/cn/hutool/json/issueI7M2GZTest.java b/hutool-json/src/test/java/cn/hutool/json/issueI7M2GZTest.java new file mode 100644 index 000000000..73a578784 --- /dev/null +++ b/hutool-json/src/test/java/cn/hutool/json/issueI7M2GZTest.java @@ -0,0 +1,73 @@ +package cn.hutool.json; + +import cn.hutool.core.lang.TypeReference; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +/** + * https://gitee.com/dromara/hutool/issues/I7M2GZ + */ +public class issueI7M2GZTest { + + public static class JSONBeanParserImpl implements JSONBeanParser { + private String name; + private Boolean isParsed; + + public Boolean getParsed() { + return isParsed; + } + + public void setParsed(Boolean parsed) { + isParsed = parsed; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public JSONBeanParserImpl() { + } + + public JSONBeanParserImpl(String name) { + this.name = name; + } + + @Override + public void parse(Object object) { + setParsed(true); + } + } + + public static class MyEntity { + private List list; + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + } + + @Test + public void toListTest() { + List list = new ArrayList<>(); + list.add(new JSONBeanParserImpl("Object1")); + + MyEntity entity = new MyEntity<>(); + entity.setList(list); + String json = JSONUtil.toJsonStr(entity); + MyEntity result = JSONUtil.toBean(json, new TypeReference>() { + }, false); + Assert.assertEquals("Object1", result.getList().get(0).getName()); + Assert.assertNotNull(result.getList().get(0).getParsed()); + } +}