diff --git a/hutool-json/pom.xml b/hutool-json/pom.xml index 0582aa7fe..8326fd31e 100755 --- a/hutool-json/pom.xml +++ b/hutool-json/pom.xml @@ -41,7 +41,6 @@ 2.11.0 2.0.41 1.15.1 - 1.37 @@ -108,18 +107,5 @@ ${jjwt.version} test - - - org.openjdk.jmh - jmh-core - ${jmh.version} - test - - - org.openjdk.jmh - jmh-generator-annprocess - ${jmh.version} - test - diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java index db320452f..e490ad098 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java @@ -225,7 +225,9 @@ public interface JSON extends Serializable { * @throws JSONException 包含非法数抛出此异常 */ default String toJSONString(final int indentFactor) throws JSONException { - return toJSONString(indentFactor, null); + final JSONWriter jsonWriter = getFactory().ofWriter(new StringBuilder(), indentFactor); + this.write(jsonWriter); + return jsonWriter.toString(); } /** diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/jmh/JsonToStringJmh.java b/hutool-json/src/test/java/org/dromara/hutool/json/jmh/JsonToStringJmh.java index e5ebaaffe..fa7bff5cc 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/jmh/JsonToStringJmh.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/jmh/JsonToStringJmh.java @@ -38,12 +38,6 @@ public class JsonToStringJmh { Assertions.assertNotNull(jsonStr); } - @Benchmark - public void gsonAppendJmh() { - final String jsonStr = gson.toString(); - Assertions.assertNotNull(jsonStr); - } - @Benchmark public void hutoolJmh() { final String jsonStr = hutoolJSON.toString(); diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/jmh/ParseTreeJmh.java b/hutool-json/src/test/java/org/dromara/hutool/json/jmh/ParseTreeJmh.java index ab8dd2816..89703abfd 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/jmh/ParseTreeJmh.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/jmh/ParseTreeJmh.java @@ -1,6 +1,9 @@ package org.dromara.hutool.json.jmh; import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import org.dromara.hutool.json.JSONObject; @@ -49,4 +52,11 @@ public class ParseTreeJmh { final com.alibaba.fastjson2.JSONObject jsonObject = JSON.parseObject(jsonStr); assertNotNull(jsonObject); } + + @Benchmark + public void jacksonJmh() throws JsonProcessingException { + final ObjectMapper mapper = new ObjectMapper(); + final JsonNode jsonNode = mapper.readTree(jsonStr); + assertNotNull(jsonNode); + } } diff --git a/pom.xml b/pom.xml index 97da953f8..e4a9b140c 100755 --- a/pom.xml +++ b/pom.xml @@ -58,6 +58,7 @@ 5.10.3 1.18.34 1.9.25 + 1.37 @@ -81,6 +82,19 @@ ${lombok.version} test + + + org.openjdk.jmh + jmh-core + ${jmh.version} + test + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh.version} + test +