From 25eca5dba73d31c2c6e08f714cbe6b5190358338 Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 20 May 2023 01:27:18 +0800 Subject: [PATCH] fix code --- .../org/dromara/hutool/json/JSONTokener.java | 7 ++++- .../dromara/hutool/json/IssueI76CSUTest.java | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 hutool-json/src/test/java/org/dromara/hutool/json/IssueI76CSUTest.java diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONTokener.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONTokener.java index ee29faf3b..543584707 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONTokener.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONTokener.java @@ -248,9 +248,14 @@ public class JSONTokener extends ReaderWrapper { c = this.next(); switch (c) { case 0: + throw this.syntaxError("Unterminated string"); case '\n': case '\r': - throw this.syntaxError("Unterminated string"); + //throw this.syntaxError("Unterminated string"); + // https://gitee.com/dromara/hutool/issues/I76CSU + // 兼容非转义符 + sb.append(c); + break; case '\\':// 转义符 c = this.next(); switch (c) { diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/IssueI76CSUTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI76CSUTest.java new file mode 100644 index 000000000..374ba0738 --- /dev/null +++ b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI76CSUTest.java @@ -0,0 +1,28 @@ +/* + * 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: + * http://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; + +/** + * https://gitee.com/dromara/hutool/issues/I76CSU + */ +public class IssueI76CSUTest { + @Test + void parseTest() { + final String str = "{ \"card\": true, \"content\": \"【标题】\n摘要\", \"time\": 1678434181000}"; + final JSONObject entries = JSONUtil.parseObj(str); + Assertions.assertEquals("【标题】\n摘要", entries.getStr("content")); + } +}