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 78f9d1646a..db320452f3 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 b502c24d4c..46cabb2e2e 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 e97f68ac93..6cae064145 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 07b51ac18e..109154844f 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 79ebe63773..7a69062f53 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 c3784fff72..14d4611dd2 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 44cbc980f8..915e6c6600 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 13802bc46e..646e9d3cc8 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 0000000000..6b5694af0a --- /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 003019d1a4..9f24309ab2 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 a8634213a3..30612d9d21 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 9bc1ab566c..40ecdf82f5 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 47c3e5e862..fac82c61a7 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 a269a5d27b..c5b22ac2df 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 7f338fd597..548a57880e 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 01ffc106b7..2073a87758 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 8f935a2e6e..283667c81d 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 1946c12903..1c4b8f7afe 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 24a02bdd13..c411052cdc 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 df9ceffbdb..391b6b6d2c 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 4ac965e7ce..158bb4654b 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 49a022ebc3..fa9973d01a 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 e74f24f82d..3ee892f551 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 70e07c22c9..b3bdc6a67d 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 69bc8420a5..35cead978f 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 f24b9ae8bb..df67e4c67c 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 2acd5abf1f..0bd5c81283 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 4dbbabeca3..d89c7e109a 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 e46e013d1f..66a0edc852 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 7e0bf6d918..329460fa0f 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 574b32e7fd..d320c8b10a 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 4dd2356145..6d26dbc933 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 5da3417dd0..a8c4076586 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 ba9a4da6cb..4c8b20f064 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 efcf8aff46..9b33eb95eb 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 4b5ff23496..35adf1c77f 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 9104982f1e..06bbd8bdc6 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 04127dee83..6b6efc7296 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 06150e731f..a3bac5d31b 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 e2e6c54189..3b74fb5285 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 70ed8b9114..fe18d62ae1 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 ac3bf9b480..1f5790c94d 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 9bb12007d1..a2083f095c 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 ee64850078..d8569e16c5 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 57a259c2e0..0d94c1fdc4 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 fe97df1e1d..e59ef97228 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 b5df7b7d3f..c4961822cf 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 cfa65fbda3..77c9fc9e30 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 33cf6dd9f5..1a6c3b1088 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 cb8ad8dbe1..e80211975e 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 12c9972e64..f29cd17ff5 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 292e8fbe47..32b49b63d8 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 4e629fbf80..e110d94915 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 35fb50246f..783a4b73d7 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 504c808ed4..3ad519388f 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 13e6352523..e7137e4597 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 199d026348..6dcb8dbeda 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 2db75426c3..00b79896f6 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 d15f4ef984..f9711edceb 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 d456f6c70a..5cb111bf55 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 ff99efd66a..ccb2841f85 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 9fedc403b5..5e2d9dfd5b 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 7714bb7a99..a471f5d473 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 596df5633f..289bb9f80d 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 83208db13e..e67bd04da1 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 3d9be4899e..dc68a26f6c 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 afba6a8294..06e1832a27 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 fd32c5c1bd..6db58fd906 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 1ddba0fda4..d61c309ef6 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 dbe10d9c32..899711e6eb 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 05b6d3d47b..84c2bfcd36 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 04a10bdb3b..ebf0da43a2 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 6a5ee29967..01604ee1a4 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 3b3af37229..fe2edd558a 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 c566dd0272..5636ca41c7 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 5ef84dc6ed..9e4d337f03 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 34a759c107..cf46dbb029 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 70729f3a4d..46ea57b21b 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 044bda5639..b146c94ffa 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 f714f3639d..7d33f4f9a9 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 d766d1e1dd..90b14ea631 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 4ff6bdde78..4afc4eed1e 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 345b209ff9..f7749227e4 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 2b9666f81f..e7401b634d --- 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 1074a702cc..424b840570 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()); } }