From f9bee1100103b825d8d5243d578979ed7d90d61a Mon Sep 17 00:00:00 2001 From: redkale Date: Fri, 21 Jul 2023 14:55:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96jsonobject?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/redkale/convert/json/JsonArray.java | 2 +- src/main/java/org/redkale/convert/json/JsonEntity.java | 2 +- src/main/java/org/redkale/convert/json/JsonFactory.java | 5 +++++ src/main/java/org/redkale/convert/json/JsonObject.java | 2 +- src/test/java/org/redkale/test/convert/JsonMainTest.java | 5 +++++ 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/redkale/convert/json/JsonArray.java b/src/main/java/org/redkale/convert/json/JsonArray.java index 4ed2ae123..652af01a1 100644 --- a/src/main/java/org/redkale/convert/json/JsonArray.java +++ b/src/main/java/org/redkale/convert/json/JsonArray.java @@ -39,7 +39,7 @@ public class JsonArray extends ArrayList implements JsonEntity { } public static JsonArray convertFrom(char[] text, int offset, int length) { - return (JsonArray) JsonEntityDecoder.instance.convertFrom(new JsonReader(text, offset, length)); + return JsonConvert.root().convertFrom(JsonArray.class, text, offset, length); } public JsonArray append(Object value) { diff --git a/src/main/java/org/redkale/convert/json/JsonEntity.java b/src/main/java/org/redkale/convert/json/JsonEntity.java index 574965967..25097a5c8 100644 --- a/src/main/java/org/redkale/convert/json/JsonEntity.java +++ b/src/main/java/org/redkale/convert/json/JsonEntity.java @@ -31,7 +31,7 @@ public interface JsonEntity extends java.io.Serializable { } public static JsonEntity convertFrom(char[] text, final int offset, final int length) { - Object val = JsonEntityDecoder.instance.convertFrom(new JsonReader(text, offset, length)); + Object val = JsonConvert.root().convertFrom(JsonEntity.class, text, offset, length); if (val instanceof CharSequence) { return new JsonString(val.toString()); } diff --git a/src/main/java/org/redkale/convert/json/JsonFactory.java b/src/main/java/org/redkale/convert/json/JsonFactory.java index f4e9cd555..06fef52f0 100644 --- a/src/main/java/org/redkale/convert/json/JsonFactory.java +++ b/src/main/java/org/redkale/convert/json/JsonFactory.java @@ -45,6 +45,11 @@ public final class JsonFactory extends ConvertFactory { this.register(java.time.LocalDate.class, LocalDateSimpledCoder.LocalDateJsonSimpledCoder.instance); this.register(java.time.LocalTime.class, LocalTimeSimpledCoder.LocalTimeJsonSimpledCoder.instance); this.register(java.time.LocalDateTime.class, LocalDateTimeSimpledCoder.LocalDateTimeJsonSimpledCoder.instance); + + this.register(JsonEntity.class, (Decodeable) JsonEntityDecoder.instance); + this.register(JsonString.class, (Decodeable) JsonEntityDecoder.instance); + this.register(JsonObject.class, (Decodeable) JsonEntityDecoder.instance); + this.register(JsonArray.class, (Decodeable) JsonEntityDecoder.instance); } } diff --git a/src/main/java/org/redkale/convert/json/JsonObject.java b/src/main/java/org/redkale/convert/json/JsonObject.java index 2d10a18e3..f9c7cc676 100644 --- a/src/main/java/org/redkale/convert/json/JsonObject.java +++ b/src/main/java/org/redkale/convert/json/JsonObject.java @@ -35,7 +35,7 @@ public class JsonObject extends LinkedHashMap implements JsonEnt } public static JsonObject convertFrom(char[] text, int offset, int length) { - return (JsonObject) JsonEntityDecoder.instance.convertFrom(new JsonReader(text, offset, length)); + return JsonConvert.root().convertFrom(JsonObject.class, text, offset, length); } public static JsonObject of(Object bean) { diff --git a/src/test/java/org/redkale/test/convert/JsonMainTest.java b/src/test/java/org/redkale/test/convert/JsonMainTest.java index 08e1ceac4..f36ff6af6 100644 --- a/src/test/java/org/redkale/test/convert/JsonMainTest.java +++ b/src/test/java/org/redkale/test/convert/JsonMainTest.java @@ -27,6 +27,7 @@ public class JsonMainTest { test.run3(); test.run4(); test.run5(); + test.run6(); } @Test @@ -137,6 +138,10 @@ public class JsonMainTest { + " ]" + "}"; JsonObject obj = JsonObject.convertFrom(str); + JsonObject obj2 = JsonConvert.root().convertFrom(JsonObject.class, str); + System.out.println("结果1: " + obj); + System.out.println("结果2: " + obj2); + System.out.println("结果3: " + JsonConvert.root().convertTo(obj2)); Assertions.assertEquals(JsonObject.class.getName(), obj.get("media").getClass().getName()); Assertions.assertEquals(JsonArray.class.getName(), obj.get("images").getClass().getName()); }