This commit is contained in:
Looly
2020-05-14 01:56:03 +08:00
parent 3da83e0227
commit d0fe78ae66
14 changed files with 337 additions and 156 deletions

View File

@@ -0,0 +1,40 @@
package cn.hutool.json;
import lombok.Data;
import org.junit.Assert;
import org.junit.Test;
import java.util.List;
/**
* 测试同一对象作为对象的字段是否会有null的问题
* 此问题原来出在BeanCopier中判断循环引用使用了equals并不严谨。
* 修复后使用==判断循环引用。
*/
public class IssueI1H2VN {
@Test
public void toBeanTest() {
String jsonStr = "{'conditionsVo':[{'column':'StockNo','value':'abc','type':'='},{'column':'CheckIncoming','value':'1','type':'='}]," +
"'queryVo':{'conditionsVo':[{'column':'StockNo','value':'abc','type':'='},{'column':'CheckIncoming','value':'1','type':'='}],'queryVo':null}}";
QueryVo vo = JSONUtil.toBean(jsonStr, QueryVo.class);
Assert.assertEquals(2, vo.getConditionsVo().size());
final QueryVo subVo = vo.getQueryVo();
Assert.assertNotNull(subVo);
Assert.assertEquals(2, subVo.getConditionsVo().size());
Assert.assertNull(subVo.getQueryVo());
}
@Data
public static class ConditionVo {
private String column;
private String value;
private String type;
}
@Data
public static class QueryVo {
private List<ConditionVo> conditionsVo;
private QueryVo queryVo;
}
}