diff --git a/CHANGELOG.md b/CHANGELOG.md index 55892c53b..393208b5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,11 @@ ------------------------------------------------------------------------------------------------------------- -## 5.3.3 (2020-04-23) +## 5.3.3 (2020-04-25) ### 新特性 ### Bug修复 +* 【json 】 修复JSON转字符串时被转义问题 ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java index 264a11dac..23963173a 100644 --- a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java +++ b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java @@ -31,7 +31,7 @@ final class InternalJSONUtil { * * @param writer Writer * @param value 值 - * @param indentFactor 每一级别的缩进量 + * @param indentFactor 缩进因子,定义每一级别增加的缩进量 * @param indent 缩进空格数 * @param config 配置项 * @return Writer diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java index 633f05ce9..8bc816859 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java @@ -599,13 +599,13 @@ public final class JSONUtil { } char b; // 前一个字符 - char c = 0; // 当前字符 + char c; // 当前字符 int len = str.length(); if (isWrap) { writer.write('"'); } for (int i = 0; i < len; i++) { - b = c; +// b = c; c = str.charAt(i); switch (c) { case '\\': @@ -613,12 +613,13 @@ public final class JSONUtil { writer.write("\\"); writer.write(c); break; - case '/': - if (b == '<') { - writer.write('\\'); - } - writer.write(c); - break; + //此处转义导致输出不和预期一致 +// case '/': +// if (b == '<') { +// writer.write('\\'); +// } +// writer.write(c); +// break; default: writer.write(escape(c)); } diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java index 3615dcddb..a27f8f2cf 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java @@ -142,6 +142,15 @@ public class JSONObjectTest { Console.log(json2); } + @Test + public void parseStringWithSlashTest() { + //在5.3.2之前,中的/会被转义,修复此bug的单元测试 + String jsonStr = "{\"a\":\"