From 5c163941fe9f70da9ee916e22f0225493b05264b Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 29 Sep 2024 13:25:24 +0800 Subject: [PATCH] add ClassTypeAdapter --- .../java/org/dromara/hutool/json/JSON.java | 13 ++++- .../org/dromara/hutool/json/JSONArray.java | 4 +- .../org/dromara/hutool/json/JSONFactory.java | 38 +++++++++++++ .../org/dromara/hutool/json/JSONGetter.java | 10 ++-- .../org/dromara/hutool/json/JSONObject.java | 4 +- .../dromara/hutool/json/JSONPrimitive.java | 9 +++- .../org/dromara/hutool/json/JSONUtil.java | 29 +++++++++- .../hutool/json/serializer/JSONMapper.java | 49 +++++++++++++++-- .../json/serializer/TypeAdapterManager.java | 3 +- .../serializer/impl/ClassTypeAdapter.java | 54 +++++++++++++++++++ ...anTest.java => ParseBeanWithListTest.java} | 2 +- .../hutool/json/issues/Issue1075Test.java | 2 + .../hutool/json/issues/Issue1101Test.java | 5 +- .../hutool/json/issues/Issue1200Test.java | 3 ++ .../hutool/json/issues/Issue1399Test.java | 2 + .../hutool/json/issues/Issue2090Test.java | 4 ++ .../hutool/json/issues/Issue2131Test.java | 4 +- .../hutool/json/issues/Issue2223Test.java | 2 + .../hutool/json/issues/Issue2377Test.java | 2 + .../hutool/json/issues/Issue2447Test.java | 1 + .../hutool/json/issues/Issue2507Test.java | 2 + .../hutool/json/issues/Issue2555Test.java | 3 ++ .../hutool/json/issues/Issue2564Test.java | 2 + .../hutool/json/issues/Issue2572Test.java | 1 + .../hutool/json/issues/Issue2746Test.java | 2 + .../hutool/json/issues/Issue2749Test.java | 2 + .../hutool/json/issues/Issue2801Test.java | 2 + .../hutool/json/issues/Issue2924Test.java | 1 + .../hutool/json/issues/Issue2953Test.java | 3 ++ .../hutool/json/issues/Issue3051Test.java | 3 ++ .../hutool/json/issues/Issue3058Test.java | 1 + .../hutool/json/issues/Issue3086Test.java | 2 + .../hutool/json/issues/Issue3139Test.java | 2 + .../hutool/json/issues/Issue3193Test.java | 2 + .../hutool/json/issues/Issue3274Test.java | 4 ++ .../hutool/json/issues/Issue3289Test.java | 2 + .../hutool/json/issues/Issue3504Test.java | 2 + .../hutool/json/issues/Issue3506Test.java | 18 +++++-- .../hutool/json/issues/Issue3588Test.java | 2 + .../hutool/json/issues/Issue3619Test.java | 3 ++ .../hutool/json/issues/Issue3649Test.java | 2 + .../hutool/json/issues/Issue3681Test.java | 1 + .../hutool/json/issues/Issue644Test.java | 4 +- .../hutool/json/issues/Issue677Test.java | 3 +- .../hutool/json/issues/Issue867Test.java | 2 + .../hutool/json/issues/IssueI1AU86Test.java | 4 +- .../hutool/json/issues/IssueI1F8M2Test.java | 1 + .../hutool/json/issues/IssueI1H2VNTest.java | 1 + .../hutool/json/issues/IssueI3BS4STest.java | 1 + .../hutool/json/issues/IssueI3EGJPTest.java | 1 + .../hutool/json/issues/IssueI49VZBTest.java | 3 +- .../hutool/json/issues/IssueI4RBZ4Test.java | 3 ++ .../hutool/json/issues/IssueI4XFMWTest.java | 3 +- .../hutool/json/issues/IssueI50EGGTest.java | 2 + .../hutool/json/issues/IssueI59LW4Test.java | 3 ++ .../hutool/json/issues/IssueI5DHK2Test.java | 2 + .../hutool/json/issues/IssueI5OMSCTest.java | 2 + .../hutool/json/issues/IssueI676ITTest.java | 2 + .../hutool/json/issues/IssueI6H0XFTest.java | 1 + .../hutool/json/issues/IssueI6LBZATest.java | 3 ++ .../hutool/json/issues/IssueI6SZYBTest.java | 1 + .../hutool/json/issues/IssueI6YN2ATest.java | 2 + .../hutool/json/issues/IssueI71BE6Test.java | 1 + .../hutool/json/issues/IssueI76CSUTest.java | 2 + .../hutool/json/issues/IssueI7CW27Test.java | 1 + .../hutool/json/issues/IssueI7FQ29Test.java | 12 +++++ .../hutool/json/issues/IssueI7GPGXTest.java | 1 + .../hutool/json/issues/IssueI7M2GZTest.java | 2 + .../hutool/json/issues/IssueI7VM64Test.java | 1 + .../hutool/json/issues/IssueI81QZ2Test.java | 1 + .../hutool/json/issues/IssueI82AM8Test.java | 1 + .../hutool/json/issues/IssueI84V6ITest.java | 1 + .../hutool/json/issues/IssueI8NMP7Test.java | 2 + .../hutool/json/issues/IssueI8PC9FTest.java | 2 + .../hutool/json/issues/IssueI90ADXTest.java | 2 + .../hutool/json/issues/IssueI9DX5HTest.java | 3 ++ .../hutool/json/issues/IssueI9HQQETest.java | 3 ++ .../hutool/json/issues/IssueIALQ0NTest.java | 2 + .../hutool/json/issues/IssueIAOPI9Test.java | 1 + .../hutool/json/issues/IssueIAP4GMTest.java | 2 + .../hutool/json/issues/Issues1881Test.java | 1 + .../hutool/json/issues/IssuesI44E4HTest.java | 2 + .../hutool/json/issues/IssuesI4V14NTest.java | 2 + .../hutool/json/{ => issues}/Pr192Test.java | 3 +- .../hutool/json/{ => issues}/Pr3067Test.java | 5 +- .../hutool/json/{ => issues}/Pr3507Test.java | 13 +++-- 86 files changed, 374 insertions(+), 38 deletions(-) create mode 100644 hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/ClassTypeAdapter.java rename hutool-json/src/test/java/org/dromara/hutool/json/{ParseBeanTest.java => ParseBeanWithListTest.java} (98%) rename hutool-json/src/test/java/org/dromara/hutool/json/{ => issues}/Pr192Test.java (96%) rename hutool-json/src/test/java/org/dromara/hutool/json/{ => issues}/Pr3067Test.java (94%) mode change 100755 => 100644 rename hutool-json/src/test/java/org/dromara/hutool/json/{ => issues}/Pr3507Test.java (54%) diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java index 78f9d1646..db320452f 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSON.java @@ -37,13 +37,22 @@ import java.util.function.Predicate; */ public interface JSON extends Serializable { + /** + * 获取JSON工厂 + * + * @return JSON工厂 + */ + JSONFactory getFactory(); + /** * 获取JSON配置 * * @return {@link JSONConfig} * @since 5.3.0 */ - JSONConfig config(); + default JSONConfig config(){ + return getFactory().getConfig(); + } /** * JSON大小,对于JSONObject,是键值对的多少,JSONArray则是元素的个数,JSON原始数据为1 @@ -250,6 +259,6 @@ public interface JSON extends Serializable { * @return 实体类对象 */ default T toBean(final Type type) { - return JSONFactory.of(config(), null).toBean(this, type); + return getFactory().toBean(this, type); } } diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONArray.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONArray.java index b502c24d4..46cabb2e2 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONArray.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONArray.java @@ -103,8 +103,8 @@ public class JSONArray extends ListWrapper implements JSON, JSONGetter + * 提供的适配器必须为实现{@link MatcherJSONSerializer}或{@link MatcherJSONDeserializer}接口
+ * 当两个接口都实现时,同时注册序列化和反序列化器 + * + * @param typeAdapter 自定义类型适配器 + * @return this + */ + public JSONFactory register(final TypeAdapter typeAdapter) { + getMapper().register(typeAdapter); + return this; + } + // region ----- of /** diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java index e97f68ac9..6cae06414 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONGetter.java @@ -31,12 +31,10 @@ import java.util.List; public interface JSONGetter extends TypeGetter { /** - * 获取JSON配置 - * - * @return {@link JSONConfig} - * @since 5.3.0 + * 获取JSON工厂 + * @return JSON工厂 */ - JSONConfig config(); + JSONFactory getFactory(); /** * key对应值是否为{@code null}或无此key @@ -85,7 +83,7 @@ public interface JSONGetter extends TypeGetter { } if (json instanceof JSONObject) { - return JSONUtil.parseArray(json, config()); + return getFactory().parseArray(json); } return json.asJSONArray(); diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java index 07b51ac18..109154844 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONObject.java @@ -100,8 +100,8 @@ public class JSONObject extends MapWrapper implements JSON, JSONGe // endregion @Override - public JSONConfig config() { - return this.factory.getConfig(); + public JSONFactory getFactory() { + return this.factory; } @Override diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONPrimitive.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONPrimitive.java index 79ebe6377..7a69062f5 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONPrimitive.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONPrimitive.java @@ -119,9 +119,14 @@ public class JSONPrimitive implements Wrapper, JSON { return this; } + /** + * 获得JSON工厂类 + * + * @return JSON工厂类 + */ @Override - public JSONConfig config() { - return this.factory.getConfig(); + public JSONFactory getFactory() { + return this.factory; } /** diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java index c3784fff7..14d4611dd 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java @@ -22,6 +22,10 @@ import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.mutable.MutableEntry; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.ObjUtil; +import org.dromara.hutool.json.serializer.MatcherJSONDeserializer; +import org.dromara.hutool.json.serializer.MatcherJSONSerializer; +import org.dromara.hutool.json.serializer.TypeAdapter; +import org.dromara.hutool.json.serializer.TypeAdapterManager; import org.dromara.hutool.json.support.JSONStrFormatter; import org.dromara.hutool.json.xml.JSONXMLUtil; @@ -404,7 +408,7 @@ public class JSONUtil { * @return 实体类对象 * @since 4.3.2 */ - public static T toBean(final Object obj, final JSONConfig config, Type type) { + public static T toBean(final Object obj, final JSONConfig config, final Type type) { if (null == obj) { return null; } @@ -634,4 +638,27 @@ public class JSONUtil { return StrUtil.isWrap(StrUtil.trim(str), '[', ']'); } // endregion + + // region ----- registerTypeAdapter + /** + * 全局注册自定义类型适配器,用于自定义对象序列化和反序列化 + * + * @param type 类型 + * @param typeAdapter 自定义序列化器,{@code null}表示移除 + */ + public void registerTypeAdapter(final Type type, final TypeAdapter typeAdapter) { + TypeAdapterManager.getInstance().register(type, typeAdapter); + } + + /** + * 全局注册自定义类型适配器,用于自定义对象序列化和反序列化
+ * 提供的适配器必须为实现{@link MatcherJSONSerializer}或{@link MatcherJSONDeserializer}接口
+ * 当两个接口都实现时,同时注册序列化和反序列化器 + * + * @param typeAdapter 自定义类型适配器 + */ + public void registerTypeAdapter(final TypeAdapter typeAdapter) { + TypeAdapterManager.getInstance().register(typeAdapter); + } + // endregion } diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/serializer/JSONMapper.java b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/JSONMapper.java index 44cbc980f..915e6c660 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/serializer/JSONMapper.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/JSONMapper.java @@ -22,6 +22,7 @@ import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.json.*; import org.dromara.hutool.json.reader.JSONTokener; +import org.dromara.hutool.json.serializer.impl.DefaultDeserializer; import org.dromara.hutool.json.xml.JSONXMLParser; import org.dromara.hutool.json.xml.ParseConfig; @@ -58,7 +59,7 @@ public class JSONMapper implements Serializable { } private final JSONFactory factory; - private TypeAdapterManager typeAdapterManager; + private volatile TypeAdapterManager typeAdapterManager; /** * 构造 @@ -89,6 +90,31 @@ public class JSONMapper implements Serializable { return this; } + /** + * 注册自定义类型适配器,用于自定义对象序列化和反序列化 + * + * @param type 类型 + * @param typeAdapter 自定义序列化器,{@code null}表示移除 + * @return this + */ + public JSONMapper register(final Type type, final TypeAdapter typeAdapter) { + initTypeAdapterManager().register(type, typeAdapter); + return this; + } + + /** + * 注册自定义类型适配器,用于自定义对象序列化和反序列化
+ * 提供的适配器必须为实现{@link MatcherJSONSerializer}或{@link MatcherJSONDeserializer}接口
+ * 当两个接口都实现时,同时注册序列化和反序列化器 + * + * @param typeAdapter 自定义类型适配器 + * @return this + */ + public JSONMapper register(final TypeAdapter typeAdapter) { + initTypeAdapterManager().register(typeAdapter); + return this; + } + /** * 转为实体类对象 * @@ -121,10 +147,7 @@ public class JSONMapper implements Serializable { } final boolean ignoreError = ObjUtil.defaultIfNull(this.factory.getConfig(), JSONConfig::isIgnoreError, false); if (null == deserializer) { - if (ignoreError) { - return null; - } - throw new JSONException("No deserializer for type: " + type); + deserializer = DefaultDeserializer.INSTANCE; } try { @@ -314,4 +337,20 @@ public class JSONMapper implements Serializable { private JSON mapFromTokener(final JSONTokener tokener) { return this.factory.ofParser(tokener).parse(); } + + /** + * 初始化类型转换器管理器,如果尚未初始化,则初始化,否则直接返回 + * + * @return {@link TypeAdapterManager} + */ + private TypeAdapterManager initTypeAdapterManager() { + if (null == this.typeAdapterManager) { + synchronized (this) { + if (null == this.typeAdapterManager) { + this.typeAdapterManager = TypeAdapterManager.of(); + } + } + } + return this.typeAdapterManager; + } } diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/serializer/TypeAdapterManager.java b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/TypeAdapterManager.java index 13802bc46..646e9d3cc 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/serializer/TypeAdapterManager.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/TypeAdapterManager.java @@ -225,7 +225,8 @@ public class TypeAdapterManager { } } - return DefaultDeserializer.INSTANCE; + // 此处返回null,错误处理在mapper中 + return null; } // endregion diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/ClassTypeAdapter.java b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/ClassTypeAdapter.java new file mode 100644 index 000000000..6b5694af0 --- /dev/null +++ b/hutool-json/src/main/java/org/dromara/hutool/json/serializer/impl/ClassTypeAdapter.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2024 Hutool Team and hutool.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.dromara.hutool.json.serializer.impl; + +import org.dromara.hutool.core.reflect.ClassUtil; +import org.dromara.hutool.json.JSON; +import org.dromara.hutool.json.serializer.JSONContext; +import org.dromara.hutool.json.serializer.JSONDeserializer; +import org.dromara.hutool.json.serializer.JSONSerializer; + +import java.lang.reflect.Type; + +/** + * Class类型适配器,用于将Class对象序列化为字符串,反序列化为Class对象
+ * 注意:考虑安全问题,此类并不作为默认的适配器,如需启用,需: + *
{@code
+ *   final JSONFactory factory = JSONFactory.of(null, null);
+ *   factory.register(Class.class, ClassTypeAdapter.INSTANCE);
+ * }
+ * + * @author looly + * @since 6.0.0 + */ +public class ClassTypeAdapter implements JSONSerializer>, JSONDeserializer> { + + /** + * 单例 + */ + public static final ClassTypeAdapter INSTANCE = new ClassTypeAdapter(); + + @Override + public JSON serialize(final Class bean, final JSONContext context) { + return context.getOrCreatePrimitive(bean.getName()); + } + + @Override + public Class deserialize(final JSON json, final Type deserializeType) { + return ClassUtil.forName((String) json.asJSONPrimitive().getValue(), true, null); + } +} diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/ParseBeanTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/ParseBeanWithListTest.java similarity index 98% rename from hutool-json/src/test/java/org/dromara/hutool/json/ParseBeanTest.java rename to hutool-json/src/test/java/org/dromara/hutool/json/ParseBeanWithListTest.java index 003019d1a..9f24309ab 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/ParseBeanTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/ParseBeanWithListTest.java @@ -29,7 +29,7 @@ import java.util.List; * @author looly * */ -public class ParseBeanTest { +public class ParseBeanWithListTest { @Test public void parseBeanTest() { diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1075Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1075Test.java index a8634213a..30612d9d2 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1075Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1075Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1101Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1101Test.java index 9bc1ab566..40ecdf82f 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1101Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1101Test.java @@ -16,10 +16,13 @@ package org.dromara.hutool.json.issues; +import lombok.Data; import org.dromara.hutool.core.bean.BeanUtil; import org.dromara.hutool.core.convert.ConvertUtil; import org.dromara.hutool.core.reflect.TypeReference; -import lombok.Data; +import org.dromara.hutool.json.JSONArray; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1200Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1200Test.java index 47c3e5e86..fac82c61a 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1200Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1200Test.java @@ -18,6 +18,9 @@ package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.io.resource.ResourceUtil; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1399Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1399Test.java index a269a5d27..c5b22ac2d 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1399Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue1399Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2090Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2090Test.java index 7f338fd59..548a57880 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2090Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2090Test.java @@ -17,6 +17,10 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSON; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONPrimitive; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2131Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2131Test.java index 01ffc106b..2073a8775 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2131Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2131Test.java @@ -16,10 +16,12 @@ package org.dromara.hutool.json.issues; -import org.dromara.hutool.core.collection.ListUtil; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.dromara.hutool.core.collection.ListUtil; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2223Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2223Test.java index 8f935a2e6..283667c81 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2223Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2223Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2377Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2377Test.java index 1946c1290..1c4b8f7af 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2377Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2377Test.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONArray; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2447Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2447Test.java index 24a02bdd1..c411052cd 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2447Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2447Test.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2507Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2507Test.java index df9ceffbd..391b6b6d2 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2507Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2507Test.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2555Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2555Test.java index 4ac965e7c..158bb4654 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2555Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2555Test.java @@ -17,6 +17,9 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSON; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.serializer.JSONContext; import org.dromara.hutool.json.serializer.JSONDeserializer; import org.dromara.hutool.json.serializer.JSONSerializer; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2564Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2564Test.java index 49a022ebc..fa9973d01 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2564Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2564Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2572Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2572Test.java index e74f24f82..3ee892f55 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2572Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2572Test.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONObject; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2746Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2746Test.java index 70e07c22c..b3bdc6a67 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2746Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2746Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.text.StrUtil; +import org.dromara.hutool.json.JSONException; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2749Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2749Test.java index 69bc8420a..35cead978 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2749Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2749Test.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2801Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2801Test.java index f24b9ae8b..df67e4c67 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2801Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2801Test.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2924Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2924Test.java index 2acd5abf1..0bd5c8128 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2924Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2924Test.java @@ -16,6 +16,7 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2953Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2953Test.java index 4dbbabeca..d89c7e109 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2953Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue2953Test.java @@ -16,6 +16,9 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3051Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3051Test.java index e46e013d1..66a0edc85 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3051Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3051Test.java @@ -17,6 +17,9 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3058Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3058Test.java index 7e0bf6d91..329460fa0 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3058Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3058Test.java @@ -16,6 +16,7 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3086Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3086Test.java index 574b32e7f..d320c8b10 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3086Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3086Test.java @@ -18,6 +18,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.collection.ListUtil; +import org.dromara.hutool.json.JSON; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.serializer.JSONContext; import org.dromara.hutool.json.serializer.JSONSerializer; import org.dromara.hutool.json.serializer.TypeAdapterManager; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3139Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3139Test.java index 4dd235614..6d26dbc93 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3139Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3139Test.java @@ -18,6 +18,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.collection.ListUtil; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.serializer.JSONDeserializer; import org.dromara.hutool.json.serializer.TypeAdapterManager; import org.junit.jupiter.api.Assertions; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3193Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3193Test.java index 5da3417dd..a8c407658 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3193Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3193Test.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3274Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3274Test.java index ba9a4da6c..4c8b20f06 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3274Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3274Test.java @@ -18,6 +18,10 @@ package org.dromara.hutool.json.issues; import lombok.Data; import lombok.Getter; +import org.dromara.hutool.json.JSONArray; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3289Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3289Test.java index efcf8aff4..9b33eb95e 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3289Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3289Test.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONException; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java index 4b5ff2349..35adf1c77 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java @@ -19,6 +19,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.reflect.ClassUtil; import org.dromara.hutool.core.util.ObjUtil; +import org.dromara.hutool.json.JSONPrimitive; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.serializer.JSONContext; import org.dromara.hutool.json.serializer.JSONDeserializer; import org.dromara.hutool.json.serializer.JSONSerializer; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3506Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3506Test.java index 9104982f1..06bbd8bdc 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3506Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3506Test.java @@ -17,6 +17,9 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONFactory; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.serializer.impl.ClassTypeAdapter; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -24,21 +27,28 @@ public class Issue3506Test { @Test void toBeanTest() { + final JSONFactory factory = JSONFactory.of(null, null); + factory.register(Class.class, ClassTypeAdapter.INSTANCE); + final Languages languages = new Languages(); languages.setLanguageType(Java.class); - final String hutoolJSONString = JSONUtil.toJsonStr(languages); - final Languages bean = JSONUtil.toBean(hutoolJSONString, Languages.class); + final String hutoolJSONString = factory.parseObj(languages).toString(); + Assertions.assertEquals("{\"languageType\":\"org.dromara.hutool.json.issues.Issue3506Test$Java\"}", hutoolJSONString); + + final JSONObject jsonObject = factory.parseObj(hutoolJSONString); + final Languages bean = jsonObject.toBean(Languages.class); + Assertions.assertNotNull(bean); Assertions.assertEquals(bean.getLanguageType(), Java.class); } @Data - public static class Languages { + static class Languages { private Class languageType; } - public interface Language { + interface Language { } public static class Java implements Language { diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3588Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3588Test.java index 04127dee8..6b6efc729 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3588Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3588Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3619Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3619Test.java index 06150e731..a3bac5d31 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3619Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3619Test.java @@ -16,6 +16,9 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3649Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3649Test.java index e2e6c5418..3b74fb528 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3649Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3649Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3681Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3681Test.java index 70ed8b911..fe18d62ae 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3681Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3681Test.java @@ -18,6 +18,7 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.map.MapUtil; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue644Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue644Test.java index ac3bf9b48..1f5790c94 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue644Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue644Test.java @@ -16,8 +16,10 @@ package org.dromara.hutool.json.issues; -import org.dromara.hutool.core.date.TimeUtil; import lombok.Data; +import org.dromara.hutool.core.date.TimeUtil; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue677Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue677Test.java index 9bb12007d..a2083f095 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue677Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue677Test.java @@ -16,8 +16,9 @@ package org.dromara.hutool.json.issues; -import org.dromara.hutool.core.date.DateUtil; import lombok.Data; +import org.dromara.hutool.core.date.DateUtil; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue867Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue867Test.java index ee6485007..d8569e16c 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue867Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue867Test.java @@ -18,6 +18,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.annotation.Alias; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1AU86Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1AU86Test.java index 57a259c2e..0d94c1fdc 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1AU86Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1AU86Test.java @@ -16,8 +16,10 @@ package org.dromara.hutool.json.issues; -import org.dromara.hutool.core.collection.ListUtil; import lombok.Data; +import org.dromara.hutool.core.collection.ListUtil; +import org.dromara.hutool.json.JSONArray; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1F8M2Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1F8M2Test.java index fe97df1e1..e59ef9722 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1F8M2Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1F8M2Test.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1H2VNTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1H2VNTest.java index b5df7b7d3..c4961822c 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1H2VNTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI1H2VNTest.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3BS4STest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3BS4STest.java index cfa65fbda..77c9fc9e3 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3BS4STest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3BS4STest.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3EGJPTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3EGJPTest.java index 33cf6dd9f..1a6c3b108 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3EGJPTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI3EGJPTest.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONObject; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI49VZBTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI49VZBTest.java index cb8ad8dbe..e80211975 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI49VZBTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI49VZBTest.java @@ -16,9 +16,10 @@ package org.dromara.hutool.json.issues; -import org.dromara.hutool.core.convert.ConvertUtil; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.hutool.core.convert.ConvertUtil; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4RBZ4Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4RBZ4Test.java index 12c9972e6..f29cd17ff 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4RBZ4Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4RBZ4Test.java @@ -16,6 +16,9 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4XFMWTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4XFMWTest.java index 292e8fbe4..32b49b63d 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4XFMWTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI4XFMWTest.java @@ -16,8 +16,9 @@ package org.dromara.hutool.json.issues; -import org.dromara.hutool.core.annotation.Alias; import lombok.Data; +import org.dromara.hutool.core.annotation.Alias; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI50EGGTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI50EGGTest.java index 4e629fbf8..e110d9491 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI50EGGTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI50EGGTest.java @@ -18,6 +18,8 @@ package org.dromara.hutool.json.issues; import lombok.AllArgsConstructor; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI59LW4Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI59LW4Test.java index 35fb50246..783a4b73d 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI59LW4Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI59LW4Test.java @@ -16,6 +16,9 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONArray; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5DHK2Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5DHK2Test.java index 504c808ed..3ad519388 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5DHK2Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5DHK2Test.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5OMSCTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5OMSCTest.java index 13e635252..e7137e459 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5OMSCTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI5OMSCTest.java @@ -18,6 +18,8 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.io.resource.ResourceUtil; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI676ITTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI676ITTest.java index 199d02634..6dcb8dbed 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI676ITTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI676ITTest.java @@ -19,6 +19,8 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.io.resource.ResourceUtil; import org.dromara.hutool.core.xml.XPathUtil; import org.dromara.hutool.core.xml.XmlUtil; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.xml.JSONXMLSerializer; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6H0XFTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6H0XFTest.java index 2db75426c..00b79896f 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6H0XFTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6H0XFTest.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6LBZATest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6LBZATest.java index d15f4ef98..f9711edce 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6LBZATest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6LBZATest.java @@ -16,6 +16,9 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSON; +import org.dromara.hutool.json.JSONPrimitive; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6SZYBTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6SZYBTest.java index d456f6c70..5cb111bf5 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6SZYBTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6SZYBTest.java @@ -18,6 +18,7 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.lang.mutable.MutableEntry; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6YN2ATest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6YN2ATest.java index ff99efd66..ccb2841f8 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6YN2ATest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI6YN2ATest.java @@ -18,6 +18,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI71BE6Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI71BE6Test.java index 9fedc403b..5e2d9dfd5 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI71BE6Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI71BE6Test.java @@ -16,6 +16,7 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI76CSUTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI76CSUTest.java index 7714bb7a9..a471f5d47 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI76CSUTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI76CSUTest.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7CW27Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7CW27Test.java index 596df5633..289bb9f80 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7CW27Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7CW27Test.java @@ -16,6 +16,7 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7FQ29Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7FQ29Test.java index 83208db13..e67bd04da 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7FQ29Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7FQ29Test.java @@ -17,6 +17,9 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONUtil; +import org.dromara.hutool.json.serializer.JSONDeserializer; +import org.dromara.hutool.json.serializer.TypeAdapterManager; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -29,6 +32,15 @@ public class IssueI7FQ29Test { @Test void toMapTest() { + // Class不添加默认反序列化器,防止可能的安全问题 + TypeAdapterManager.getInstance().register(Class.class, (JSONDeserializer>) (json, deserializeType) -> { + try { + return Class.forName(json.asJSONPrimitive().getValue().toString()); + } catch (final ClassNotFoundException e) { + throw new RuntimeException(e); + } + }); + final String jsonStr = "{\"trans_no\": \"java.lang.String\"}"; final Map> map = JSONUtil.toBean(jsonStr, new TypeReference>>() { }); diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7GPGXTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7GPGXTest.java index 3d9be4899..dc68a26f6 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7GPGXTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7GPGXTest.java @@ -20,6 +20,7 @@ import org.dromara.hutool.core.lang.tuple.Pair; import org.dromara.hutool.core.lang.tuple.Triple; import org.dromara.hutool.core.lang.tuple.Tuple; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7M2GZTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7M2GZTest.java index afba6a829..06e1832a2 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7M2GZTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7M2GZTest.java @@ -19,6 +19,8 @@ package org.dromara.hutool.json.issues; import lombok.AllArgsConstructor; import lombok.Data; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSON; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.serializer.JSONDeserializer; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7VM64Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7VM64Test.java index fd32c5c1b..6db58fd90 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7VM64Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI7VM64Test.java @@ -16,6 +16,7 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONObject; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI81QZ2Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI81QZ2Test.java index 1ddba0fda..d61c309ef 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI81QZ2Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI81QZ2Test.java @@ -16,6 +16,7 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI82AM8Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI82AM8Test.java index dbe10d9c3..899711e6e 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI82AM8Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI82AM8Test.java @@ -19,6 +19,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.io.resource.ResourceUtil; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI84V6ITest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI84V6ITest.java index 05b6d3d47..84c2bfcd3 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI84V6ITest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI84V6ITest.java @@ -16,6 +16,7 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8NMP7Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8NMP7Test.java index 04a10bdb3..ebf0da43a 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8NMP7Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8NMP7Test.java @@ -18,6 +18,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; import lombok.ToString; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8PC9FTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8PC9FTest.java index 6a5ee2996..01604ee1a 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8PC9FTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI8PC9FTest.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI90ADXTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI90ADXTest.java index 3b3af3722..fe2edd558 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI90ADXTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI90ADXTest.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import lombok.Getter; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9DX5HTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9DX5HTest.java index c566dd027..5636ca41c 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9DX5HTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9DX5HTest.java @@ -17,6 +17,9 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.text.StrUtil; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONFactory; +import org.dromara.hutool.json.JSONObject; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9HQQETest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9HQQETest.java index 5ef84dc6e..9e4d337f0 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9HQQETest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueI9HQQETest.java @@ -17,6 +17,9 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIALQ0NTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIALQ0NTest.java index 34a759c10..cf46dbb02 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIALQ0NTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIALQ0NTest.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.date.DateUtil; +import org.dromara.hutool.json.JSONConfig; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.writer.NumberWriteMode; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAOPI9Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAOPI9Test.java index 70729f3a4..46ea57b21 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAOPI9Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAOPI9Test.java @@ -17,6 +17,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAP4GMTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAP4GMTest.java index 044bda563..b146c94ff 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAP4GMTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssueIAP4GMTest.java @@ -16,6 +16,8 @@ package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issues1881Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issues1881Test.java index f714f3639..7d33f4f9a 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issues1881Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issues1881Test.java @@ -18,6 +18,7 @@ package org.dromara.hutool.json.issues; import lombok.Data; import lombok.experimental.Accessors; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI44E4HTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI44E4HTest.java index d766d1e1d..90b14ea63 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI44E4HTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI44E4HTest.java @@ -19,6 +19,8 @@ package org.dromara.hutool.json.issues; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.dromara.hutool.json.serializer.JSONDeserializer; import org.dromara.hutool.json.serializer.TypeAdapterManager; import org.junit.jupiter.api.Assertions; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI4V14NTest.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI4V14NTest.java index 4ff6bdde7..4afc4eed1 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI4V14NTest.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/IssuesI4V14NTest.java @@ -17,6 +17,8 @@ package org.dromara.hutool.json.issues; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Test; import java.util.Map; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/Pr192Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr192Test.java similarity index 96% rename from hutool-json/src/test/java/org/dromara/hutool/json/Pr192Test.java rename to hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr192Test.java index 345b209ff..f7749227e 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/Pr192Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr192Test.java @@ -14,8 +14,9 @@ * limitations under the License. */ -package org.dromara.hutool.json; +package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/Pr3067Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr3067Test.java old mode 100755 new mode 100644 similarity index 94% rename from hutool-json/src/test/java/org/dromara/hutool/json/Pr3067Test.java rename to hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr3067Test.java index 2b9666f81..e7401b634 --- a/hutool-json/src/test/java/org/dromara/hutool/json/Pr3067Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr3067Test.java @@ -14,11 +14,14 @@ * limitations under the License. */ -package org.dromara.hutool.json; +package org.dromara.hutool.json.issues; import lombok.Data; import org.dromara.hutool.core.io.resource.ResourceUtil; import org.dromara.hutool.core.reflect.TypeReference; +import org.dromara.hutool.json.JSONArray; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.JSONUtil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/Pr3507Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr3507Test.java similarity index 54% rename from hutool-json/src/test/java/org/dromara/hutool/json/Pr3507Test.java rename to hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr3507Test.java index 1074a702c..424b84057 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/Pr3507Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Pr3507Test.java @@ -14,15 +14,22 @@ * limitations under the License. */ -package org.dromara.hutool.json; +package org.dromara.hutool.json.issues; +import org.dromara.hutool.json.JSONFactory; +import org.dromara.hutool.json.JSONObject; +import org.dromara.hutool.json.serializer.JSONSerializer; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; public class Pr3507Test { @Test void writeClassTest() { - final JSONObject set = JSONUtil.ofObj().putObj("name", Pr3507Test.class); - Assertions.assertEquals("{\"name\":\"org.dromara.hutool.json.Pr3507Test\"}", set.toString()); + // 考虑安全问题,不提供默认的Class的序列化器,此处局部自定义 + final JSONFactory factory = JSONFactory.of(null, null); + factory.register(Class.class, (JSONSerializer>) (bean, context) -> context.getOrCreatePrimitive(bean.getName())); + + final JSONObject set = factory.ofObj().putObj("name", Pr3507Test.class); + Assertions.assertEquals("{\"name\":\"org.dromara.hutool.json.issues.Pr3507Test\"}", set.toString()); } }