From 0c3f91bad3d8e8da4113a6443cb9feadb06325d6 Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 28 Sep 2023 16:31:59 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=E4=BF=AE=E5=A4=8DJSONStrFormatter:?= =?UTF-8?q?format=E5=87=BD=E6=95=B0=E5=AF=B9=E4=BA=8E=E8=BD=AC=E4=B9=89?= =?UTF-8?q?=E7=AC=A6=E5=8F=B7=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/collection/iter/FilterIter.java | 3 +- .../core/collection/iter/NodeListIter.java | 2 +- .../dromara/hutool/core/util/ZipUtilTest.java | 4 +-- .../hutool/extra/ftp/SimpleFtpServer.java | 2 +- .../hutool/extra/compress/ArchiverTest.java | 4 +-- .../dromara/hutool/json/JSONStrFormatter.java | 9 ++++-- .../dromara/hutool/json/IssueI84V6ITest.java | 30 +++++++++++++++++++ 7 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 hutool-json/src/test/java/org/dromara/hutool/json/IssueI84V6ITest.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/FilterIter.java b/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/FilterIter.java index e92bb2afe..7bc72a00a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/FilterIter.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/FilterIter.java @@ -22,7 +22,8 @@ import java.util.function.Predicate; * 包装 {@link Iterator}并根据{@link Predicate}定义,过滤元素输出
* 类实现来自Apache Commons Collection * - * @author mina commons, looly + * @param 元素类型 + * @author Apahce-commons, looly * @since 5.8.0 */ public class FilterIter implements Iterator { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/NodeListIter.java b/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/NodeListIter.java index d72387912..60c983a7a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/NodeListIter.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/collection/iter/NodeListIter.java @@ -24,7 +24,7 @@ import java.util.NoSuchElementException; *

* 此 iterator 不支持 {@link #remove()} 方法。 * - * @author mina commons,looly + * @author Apache-commons,looly * @see NodeList * @since 5.8.0 */ diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/util/ZipUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/util/ZipUtilTest.java index 67fc04e04..9675f087f 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/util/ZipUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/util/ZipUtilTest.java @@ -18,8 +18,6 @@ import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.lang.Console; import org.dromara.hutool.core.text.StrUtil; -import org.dromara.hutool.core.util.ByteUtil; -import org.dromara.hutool.core.util.CharsetUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -100,7 +98,7 @@ public class ZipUtilTest { @Test @Disabled public void unzipTest() { - final File unzip = ZipUtil.unzip("f:/test/mina-maven-3.6.2.zip", "f:\\test"); + final File unzip = ZipUtil.unzip("f:/test/apache-maven-3.6.2.zip", "f:\\test"); Console.log(unzip); } diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/SimpleFtpServer.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/SimpleFtpServer.java index ea6f460ed..308f5ce74 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/SimpleFtpServer.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/ftp/SimpleFtpServer.java @@ -32,7 +32,7 @@ import java.util.ArrayList; import java.util.List; /** - * 基于 Apache FtpServer(http://mina.apache.org/ftpserver-project/)的FTP服务端简单封装。 + * 基于 Apache FtpServer(http://apache.apache.org/ftpserver-project/)的FTP服务端简单封装。 * * @author looly * @since 5.5.0 diff --git a/hutool-extra/src/test/java/org/dromara/hutool/extra/compress/ArchiverTest.java b/hutool-extra/src/test/java/org/dromara/hutool/extra/compress/ArchiverTest.java index c427a7d5d..bfae8dbf5 100644 --- a/hutool-extra/src/test/java/org/dromara/hutool/extra/compress/ArchiverTest.java +++ b/hutool-extra/src/test/java/org/dromara/hutool/extra/compress/ArchiverTest.java @@ -66,7 +66,7 @@ public class ArchiverTest { public void sevenZTest() { final File file = FileUtil.file("d:/test/compress/test.7z"); CompressUtil.createArchiver(CharsetUtil.UTF_8, ArchiveStreamFactory.SEVEN_Z, file) - .add(FileUtil.file("d:/Java/mina-maven-3.8.1"), (f) -> { + .add(FileUtil.file("d:/Java/apache-maven-3.8.1"), (f) -> { Console.log("Add: {}", f.getPath()); return true; }) @@ -78,7 +78,7 @@ public class ArchiverTest { public void tgzTest() { final File file = FileUtil.file("d:/test/compress/test.tgz"); CompressUtil.createArchiver(CharsetUtil.UTF_8, "tgz", file) - .add(FileUtil.file("d:/Java/mina-maven-3.8.1"), (f) -> { + .add(FileUtil.file("d:/Java/apache-maven-3.8.1"), (f) -> { Console.log("Add: {}", f.getPath()); return true; }) diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONStrFormatter.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONStrFormatter.java index 818225abd..c588481d5 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONStrFormatter.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONStrFormatter.java @@ -54,15 +54,18 @@ public class JSONStrFormatter { if (null == wrapChar) { //字符串模式开始 wrapChar = key; - } else if (isEscapeMode) { - //在字符串模式下的转义 - isEscapeMode = false; } else if (wrapChar.equals(key)) { + if (isEscapeMode) { + //字符串模式下,遇到结束符号,也同时结束转义 + isEscapeMode = false; + } + //字符串包装结束 wrapChar = null; } if ((i > 1) && (json.charAt(i - 1) == CharUtil.COLON)) { + // 值前加空格 result.append(CharUtil.SPACE); } diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/IssueI84V6ITest.java b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI84V6ITest.java new file mode 100644 index 000000000..3d84dcb7e --- /dev/null +++ b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI84V6ITest.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023. looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * https://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.json; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class IssueI84V6ITest { + @Test + void formatTest() { + final String a1 = "{'x':'\\n','y':','}"; + final String formatJsonStr = JSONUtil.formatJsonStr(a1); +// Console.log(formatJsonStr); + Assertions.assertEquals( + "{\n" + + " 'x': '\\n',\n" + + " 'y': ','\n" + + "}", formatJsonStr); + } +}