mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix code
This commit is contained in:
@@ -16,36 +16,41 @@
|
||||
|
||||
package org.dromara.hutool.json;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class IssueI6LBZATest {
|
||||
@Test
|
||||
public void parseJSONStringTest() {
|
||||
final String a = "\"a\"";
|
||||
final Object parse = JSONUtil.parse(a);
|
||||
Assertions.assertEquals(String.class, parse.getClass());
|
||||
assertEquals(JSONPrimitive.class, parse.getClass());
|
||||
assertEquals(a, parse.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseJSONStringTest2() {
|
||||
final String a = "'a'";
|
||||
final Object parse = JSONUtil.parse(a);
|
||||
Assertions.assertEquals(String.class, parse.getClass());
|
||||
assertEquals(JSONPrimitive.class, parse.getClass());
|
||||
assertEquals("\"a\"", parse.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseJSONErrorTest() {
|
||||
final String a = "a";
|
||||
final Object parse = JSONUtil.parse(a);
|
||||
Assertions.assertEquals(String.class, parse.getClass());
|
||||
Assertions.assertEquals("\"a\"", parse);
|
||||
assertEquals(JSONPrimitive.class, parse.getClass());
|
||||
assertEquals("\"a\"", parse.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseJSONNumberTest() {
|
||||
final String a = "123";
|
||||
final Object parse = JSONUtil.parse(a);
|
||||
Assertions.assertEquals(Integer.class, parse.getClass());
|
||||
final JSON parse = JSONUtil.parse(a);
|
||||
assertEquals(JSONPrimitive.class, parse.getClass());
|
||||
assertEquals(123, ((JSONPrimitive)parse).getValue());
|
||||
assertEquals(Integer.class, ((JSONPrimitive)parse).getValue().getClass());
|
||||
}
|
||||
}
|
||||
|
@@ -59,8 +59,8 @@ public class IssueI7M2GZTest {
|
||||
entity.setList(list);
|
||||
|
||||
final String json = JSONUtil.toJsonStr(entity);
|
||||
//Console.log(json);
|
||||
final MyEntity<JSONBeanParserImpl> result = JSONUtil.toBean(json, new TypeReference<MyEntity<JSONBeanParserImpl>>() {});
|
||||
|
||||
Assertions.assertEquals("new Object", result.getList().get(0).getName());
|
||||
Assertions.assertNotNull(result.getList().get(0).getParsed());
|
||||
Assertions.assertEquals(Integer.valueOf(12), result.getList().get(0).getParsed());
|
||||
|
@@ -53,29 +53,29 @@ public class JSONUtilTest {
|
||||
void parseEmptyValue() {
|
||||
// https://www.rfc-editor.org/rfc/rfc8259#section-7
|
||||
// 未被包装的空串理解为null
|
||||
Object parse = JSONUtil.parse("");
|
||||
JSON parse = JSONUtil.parse("");
|
||||
assertNull(parse);
|
||||
|
||||
parse = JSONUtil.parse("\"\"");
|
||||
assertEquals("\"\"", parse);
|
||||
assertEquals("\"\"", parse.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseValueTest() {
|
||||
Object parse = JSONUtil.parse(123);
|
||||
assertEquals(123, parse);
|
||||
JSON parse = JSONUtil.parse(123);
|
||||
assertEquals(123, ((JSONPrimitive)parse).getValue());
|
||||
|
||||
parse = JSONUtil.parse("\"abc\"");
|
||||
assertEquals("\"abc\"", parse);
|
||||
assertEquals("\"abc\"", parse.toString());
|
||||
|
||||
parse = JSONUtil.parse("\"\\\"bc\"");
|
||||
assertEquals("\"\\\"bc\"", parse);
|
||||
assertEquals("\"\\\"bc\"", parse.toString());
|
||||
|
||||
parse = JSONUtil.parse("true");
|
||||
assertEquals(true, parse);
|
||||
assertEquals(true, ((JSONPrimitive)parse).getValue());
|
||||
|
||||
parse = JSONUtil.parse("False");
|
||||
assertEquals(false, parse);
|
||||
assertEquals(false, ((JSONPrimitive)parse).getValue());
|
||||
|
||||
parse = JSONUtil.parse("null");
|
||||
assertNull(parse);
|
||||
|
@@ -23,6 +23,7 @@ import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.TimeZone;
|
||||
|
||||
public class JSONEngineTest {
|
||||
|
||||
@@ -43,6 +44,12 @@ public class JSONEngineTest {
|
||||
Arrays.stream(engineNames).forEach(this::assertWriteLocalDateFormat);
|
||||
}
|
||||
|
||||
@Test
|
||||
void writeTimeZoneTest() {
|
||||
// TODO Hutool无法序列化TimeZone等特殊对象
|
||||
Arrays.stream(engineNames).forEach(this::assertWriteTimeZone);
|
||||
}
|
||||
|
||||
private void assertWriteDateFormat(final String engineName) {
|
||||
final DateTime date = DateUtil.parse("2024-01-01 01:12:21");
|
||||
final BeanWithDate bean = new BeanWithDate(date, TimeUtil.of(date));
|
||||
@@ -78,4 +85,16 @@ public class JSONEngineTest {
|
||||
jsonString = engine.toJsonString(bean);
|
||||
Assertions.assertEquals("{\"date1\":null,\"date2\":null}", jsonString);
|
||||
}
|
||||
|
||||
private void assertWriteTimeZone(final String engineName) {
|
||||
final TimeZone timeZone = TimeZone.getTimeZone("GMT+08:00");
|
||||
final JSONEngine engine = JSONEngineFactory.createEngine(engineName);
|
||||
|
||||
String jsonString = engine.toJsonString(timeZone);
|
||||
Assertions.assertEquals("\"GMT+08:00\"", jsonString);
|
||||
|
||||
engine.init(JSONEngineConfig.of().setIgnoreNullValue(false));
|
||||
jsonString = engine.toJsonString(timeZone);
|
||||
Assertions.assertEquals("\"GMT+08:00\"", jsonString);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user