From 2b6e44015b4a31443a2ee9dea42371db9e2ed641 Mon Sep 17 00:00:00 2001 From: redkale Date: Tue, 20 Feb 2024 11:38:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96JsonArray?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/redkale/convert/json/JsonArray.java | 6 ++++++ src/main/java/org/redkale/convert/json/JsonObject.java | 5 +++++ src/main/java/org/redkale/util/TypeToken.java | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/redkale/convert/json/JsonArray.java b/src/main/java/org/redkale/convert/json/JsonArray.java index dbfe283b7..0d663d9f0 100644 --- a/src/main/java/org/redkale/convert/json/JsonArray.java +++ b/src/main/java/org/redkale/convert/json/JsonArray.java @@ -3,6 +3,7 @@ */ package org.redkale.convert.json; +import java.lang.reflect.Type; import java.math.*; import java.util.*; import org.redkale.annotation.Nullable; @@ -47,6 +48,11 @@ public class JsonArray extends ArrayList implements JsonElement { return new JsonArray(); } + public List toList(Type componentType) { + Type listType = TypeToken.createParameterizedType(null, ArrayList.class, componentType); + return (List) JsonConvert.root().convertFrom(listType, JsonConvert.root().convertTo(this)); + } + public JsonArray append(Object value) { super.add(value); return this; diff --git a/src/main/java/org/redkale/convert/json/JsonObject.java b/src/main/java/org/redkale/convert/json/JsonObject.java index 4af39b3cb..cbbd0064d 100644 --- a/src/main/java/org/redkale/convert/json/JsonObject.java +++ b/src/main/java/org/redkale/convert/json/JsonObject.java @@ -3,6 +3,7 @@ */ package org.redkale.convert.json; +import java.lang.reflect.Type; import java.math.*; import java.util.*; import org.redkale.annotation.Nullable; @@ -56,6 +57,10 @@ public class JsonObject extends LinkedHashMap implements JsonEle return convertFrom(JsonConvert.root().convertTo(bean)); } + public T toObject(Type type) { + return (T) JsonConvert.root().convertFrom(type, JsonConvert.root().convertTo(this)); + } + public JsonObject append(String key, Object value) { super.put(key, value); return this; diff --git a/src/main/java/org/redkale/util/TypeToken.java b/src/main/java/org/redkale/util/TypeToken.java index 1046ba744..a974693e6 100644 --- a/src/main/java/org/redkale/util/TypeToken.java +++ b/src/main/java/org/redkale/util/TypeToken.java @@ -568,7 +568,7 @@ public abstract class TypeToken { /** * 动态创建 ParameterizedType * - * @param ownerType0 ParameterizedType 的 ownerType + * @param ownerType0 ParameterizedType 的 ownerType, 一般为null * @param rawType0 ParameterizedType 的 rawType * @param actualTypeArguments0 ParameterizedType 的 actualTypeArguments *