This commit is contained in:
Looly
2024-12-08 18:17:41 +08:00
parent 15c1237ecc
commit 45df318b56
12 changed files with 149 additions and 51 deletions

View File

@@ -34,7 +34,7 @@ public class JSONTokenerTest {
@Test
void nextTest() {
final JSONTokener jsonTokener = new JSONTokener("{\"ab\": \"abc\"}");
final JSONTokener jsonTokener = new JSONTokener("{\"ab\": \"abc\"}", true);
final char c = jsonTokener.nextTokenChar();
assertEquals('{', c);
assertEquals("ab", jsonTokener.nextString());
@@ -51,7 +51,7 @@ public class JSONTokenerTest {
*/
@Test
void nextWithoutWrapperTest() {
final JSONTokener jsonTokener = new JSONTokener("{ab: abc}");
final JSONTokener jsonTokener = new JSONTokener("{ab: abc}", true);
final char c = jsonTokener.nextTokenChar();
assertEquals('{', c);
assertEquals("ab", jsonTokener.nextString());

View File

@@ -3,15 +3,23 @@ package org.dromara.hutool.json.reader;
import org.dromara.hutool.core.io.resource.ResourceUtil;
import org.dromara.hutool.core.util.CharsetUtil;
import org.dromara.hutool.json.JSON;
import org.dromara.hutool.json.JSONConfig;
import org.dromara.hutool.json.JSONUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class Issue3808Test {
@Test
void parseTest() {
void parseEscapeZeroWithCharTest() {
final String str = ResourceUtil.readStr("issue3808.json", CharsetUtil.UTF_8);
final JSON parse = JSONUtil.parse(str);
Assertions.assertNotNull(parse);
final JSON parse = JSONUtil.parse(str, JSONConfig.of().setIgnoreZeroWithChar(false));
Assertions.assertEquals("{\"recommend_text\":\"✅宁波,\\u200c一座历史悠久的文化名城\\n你好\",\"\\u200c一\":\"aaa\"}", parse.toString());
}
@Test
void parseIgnoreZeroWithCharTest() {
final String str = ResourceUtil.readStr("issue3808.json", CharsetUtil.UTF_8);
final JSON parse = JSONUtil.parse(str, JSONConfig.of().setIgnoreZeroWithChar(true));
Assertions.assertEquals("{\"recommend_text\":\"✅宁波,一座历史悠久的文化名城\\n你好\",\",一\":\"aaa\"}", parse.toString());
}
}

View File

@@ -24,7 +24,7 @@ public class JSONParserTest {
@Test
void parseTest() {
final String jsonStr = " {\"a\": 1} ";
final JSONParser jsonParser = JSONParser.of(new JSONTokener(jsonStr), JSONFactory.getInstance());
final JSONParser jsonParser = JSONParser.of(new JSONTokener(jsonStr, true), JSONFactory.getInstance());
final JSON parse = jsonParser.parse();
Assertions.assertEquals("{\"a\":1}", parse.toString());
}
@@ -34,14 +34,14 @@ public class JSONParserTest {
final String jsonStr = "{\"a\": 1}";
final JSONObject jsonObject = JSONUtil.ofObj();
JSONParser.of(new JSONTokener(jsonStr), JSONFactory.getInstance()).parseTo(jsonObject);
JSONParser.of(new JSONTokener(jsonStr, true), JSONFactory.getInstance()).parseTo(jsonObject);
Assertions.assertEquals("{\"a\":1}", jsonObject.toString());
}
@Test
void parseToArrayTest() {
final String jsonStr = "[{},2,3]";
final JSONParser jsonParser = JSONParser.of(new JSONTokener(jsonStr), JSONFactory.getInstance());
final JSONParser jsonParser = JSONParser.of(new JSONTokener(jsonStr, true), JSONFactory.getInstance());
final JSONArray jsonArray = new JSONArray();
jsonParser.parseTo(jsonArray);

View File

@@ -1 +1 @@
{"recommend_text":"✅宁波,‌一座历史悠久的文化名城"}
{"recommend_text":"✅宁波,‌一座历史悠久的文化名城\n你好", : "aaa"}