From 6002a1476f78732bedd7f7f312fedb390b235ebc Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 29 Sep 2021 10:12:58 +0800 Subject: [PATCH] fix add bug --- CHANGELOG.md | 1 + hutool-json/src/main/java/cn/hutool/json/JSONArray.java | 2 +- .../src/test/java/cn/hutool/json/JSONArrayTest.java | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f08a76265..7ac1de802 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ * 【json 】 修复JSONGetter.getJSONArray判断null的问题(issue#I4C15H@Gitee) * 【db 】 修复Condition没占位符的情况下sql没引号问题(issue#1846@Github) * 【cache 】 修复FIFOCache中remove回调无效问题(pr#1856@Github) +* 【json 】 修复JSONArray.set中,index为0报错问题(issue#1858@Github) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONArray.java b/hutool-json/src/main/java/cn/hutool/json/JSONArray.java index 3b45390f3..fdfafabc7 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONArray.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONArray.java @@ -449,7 +449,7 @@ public class JSONArray implements JSON, JSONGetter, List, Rando */ @Override public Object set(int index, Object element) { - if(index > size()){ + if(index >= size()){ add(index, element); } return this.rawList.set(index, JSONUtil.wrap(element, this.config)); diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java index caf4c18ab..c4f8c6b6a 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java @@ -217,6 +217,15 @@ public class JSONArrayTest { Assert.assertEquals(4, jsonArray.size()); } + // https://github.com/dromara/hutool/issues/1858 + @Test + public void putTest2(){ + final JSONArray jsonArray = new JSONArray(); + jsonArray.put(0, 1); + Assert.assertEquals(1, jsonArray.size()); + Assert.assertEquals(1, jsonArray.get(0)); + } + private static Map buildMap(String id, String parentId, String name) { Map map = new HashMap<>(); map.put("id", id);