diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java
index 6cae06414..6bae91072 100644
--- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java
+++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java
@@ -18,6 +18,7 @@ package org.dromara.hutool.json;
import org.dromara.hutool.core.lang.getter.TypeGetter;
import org.dromara.hutool.core.util.ObjUtil;
+import org.dromara.hutool.json.support.InternalJSONUtil;
import java.lang.reflect.Type;
import java.util.List;
diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java
index 188716ca0..716711fb8 100644
--- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java
+++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java
@@ -25,6 +25,7 @@ import org.dromara.hutool.core.map.MapUtil;
import org.dromara.hutool.core.map.MapWrapper;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil;
+import org.dromara.hutool.json.support.InternalJSONUtil;
import org.dromara.hutool.json.writer.JSONWriter;
import java.util.Arrays;
diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/reader/JSONParser.java b/hutool-json/src/main/java/org/dromara/hutool/json/reader/JSONParser.java
index 7999c58af..73effc8ec 100644
--- a/hutool-json/src/main/java/org/dromara/hutool/json/reader/JSONParser.java
+++ b/hutool-json/src/main/java/org/dromara/hutool/json/reader/JSONParser.java
@@ -19,6 +19,7 @@ package org.dromara.hutool.json.reader;
import org.dromara.hutool.core.lang.mutable.MutableEntry;
import org.dromara.hutool.core.text.CharUtil;
import org.dromara.hutool.json.*;
+import org.dromara.hutool.json.support.InternalJSONUtil;
import java.util.function.Predicate;
diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/BeanTypeAdapter.java b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/BeanTypeAdapter.java
index 74e1c417f..245aabb05 100644
--- a/hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/BeanTypeAdapter.java
+++ b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/BeanTypeAdapter.java
@@ -23,7 +23,7 @@ import org.dromara.hutool.core.lang.copier.Copier;
import org.dromara.hutool.core.reflect.ConstructorUtil;
import org.dromara.hutool.core.reflect.TypeUtil;
import org.dromara.hutool.core.util.ObjUtil;
-import org.dromara.hutool.json.InternalJSONUtil;
+import org.dromara.hutool.json.support.InternalJSONUtil;
import org.dromara.hutool.json.JSON;
import org.dromara.hutool.json.JSONConfig;
import org.dromara.hutool.json.JSONObject;
diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/InternalJSONUtil.java b/hutool-json/src/main/java/org/dromara/hutool/json/support/InternalJSONUtil.java
similarity index 88%
rename from hutool-json/src/main/java/org/dromara/hutool/json/InternalJSONUtil.java
rename to hutool-json/src/main/java/org/dromara/hutool/json/support/InternalJSONUtil.java
index d3d769dc0..17931addf 100644
--- a/hutool-json/src/main/java/org/dromara/hutool/json/InternalJSONUtil.java
+++ b/hutool-json/src/main/java/org/dromara/hutool/json/support/InternalJSONUtil.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.dromara.hutool.json;
+package org.dromara.hutool.json.support;
import org.dromara.hutool.core.bean.copier.CopyOptions;
import org.dromara.hutool.core.codec.binary.HexUtil;
@@ -24,6 +24,9 @@ import org.dromara.hutool.core.map.CaseInsensitiveTreeMap;
import org.dromara.hutool.core.text.CharUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil;
+import org.dromara.hutool.json.JSON;
+import org.dromara.hutool.json.JSONConfig;
+import org.dromara.hutool.json.JSONFactory;
import org.dromara.hutool.json.serializer.JSONMapper;
import java.io.IOException;
@@ -120,32 +123,6 @@ public final class InternalJSONUtil {
.setConverter((targetType, value) -> mapper.toJSON(value, false));
}
- /**
- * 对所有双引号做转义处理(使用双反斜杠做转义)
- * 为了能在HTML中较好的显示,会将</转义为<\/
- * JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
- *
- * @param string 字符串
- * @return 适合在JSON中显示的字符串
- */
- public static String quote(final CharSequence string) {
- return quote(string, true);
- }
-
- /**
- * 对所有双引号做转义处理(使用双反斜杠做转义)
- * 为了能在HTML中较好的显示,会将</转义为<\/
- * JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
- *
- * @param string 字符串
- * @param isWrap 是否使用双引号包装字符串
- * @return 适合在JSON中显示的字符串
- * @since 3.3.1
- */
- public static String quote(final CharSequence string, final boolean isWrap) {
- return quote(string, new StringBuilder(), isWrap).toString();
- }
-
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)
* 为了能在HTML中较好的显示,会将</转义为<\/
@@ -207,7 +184,7 @@ public final class InternalJSONUtil {
* @param factory JSON工厂,{@code null}则使用默认配置
* @return Map
*/
- static Map createRawMap(final int capacity, final JSONFactory factory) {
+ public static Map createRawMap(final int capacity, final JSONFactory factory) {
final JSONConfig config = ObjUtil.apply(factory, JSONFactory::getConfig);
final boolean ignoreCase = ObjUtil.defaultIfNull(config, JSONConfig::isIgnoreCase, false);
final Comparator keyComparator = ObjUtil.apply(config, JSONConfig::getKeyComparator);
diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/writer/JSONWriter.java b/hutool-json/src/main/java/org/dromara/hutool/json/writer/JSONWriter.java
index 994a4aece..336901048 100644
--- a/hutool-json/src/main/java/org/dromara/hutool/json/writer/JSONWriter.java
+++ b/hutool-json/src/main/java/org/dromara/hutool/json/writer/JSONWriter.java
@@ -23,7 +23,7 @@ import org.dromara.hutool.core.regex.ReUtil;
import org.dromara.hutool.core.text.CharUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil;
-import org.dromara.hutool.json.InternalJSONUtil;
+import org.dromara.hutool.json.support.InternalJSONUtil;
import org.dromara.hutool.json.JSON;
import org.dromara.hutool.json.JSONConfig;
import org.dromara.hutool.json.JSONException;
@@ -232,7 +232,8 @@ public class JSONWriter implements Appendable, Flushable, Closeable {
}
// 换行缩进
writeLF().writeSpace(indent);
- return writeRaw(InternalJSONUtil.quote(key));
+ writeQuoteStrValue(key);
+ return this;
}
@Override
diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/xml/JSONXMLParser.java b/hutool-json/src/main/java/org/dromara/hutool/json/xml/JSONXMLParser.java
index 54a2ad6bd..7e01b3197 100644
--- a/hutool-json/src/main/java/org/dromara/hutool/json/xml/JSONXMLParser.java
+++ b/hutool-json/src/main/java/org/dromara/hutool/json/xml/JSONXMLParser.java
@@ -20,7 +20,7 @@ import org.dromara.hutool.core.lang.mutable.MutableEntry;
import org.dromara.hutool.core.text.CharUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.xml.XmlConstants;
-import org.dromara.hutool.json.InternalJSONUtil;
+import org.dromara.hutool.json.support.InternalJSONUtil;
import org.dromara.hutool.json.JSONException;
import org.dromara.hutool.json.JSONObject;
import org.dromara.hutool.json.JSONUtil;