diff --git a/sop-admin/sop-admin-backend/admin-common/src/main/java/com/gitee/sop/admin/common/jackson/convert/annotation/Listable.java b/sop-admin/sop-admin-backend/admin-common/src/main/java/com/gitee/sop/admin/common/jackson/convert/annotation/Listable.java new file mode 100755 index 00000000..7e747b76 --- /dev/null +++ b/sop-admin/sop-admin-backend/admin-common/src/main/java/com/gitee/sop/admin/common/jackson/convert/annotation/Listable.java @@ -0,0 +1,22 @@ +package com.gitee.sop.admin.common.jackson.convert.annotation; + + +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.gitee.sop.admin.common.jackson.convert.serde.ListSerializer; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 序列化自动转成数组 + * @author 六如 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +@JacksonAnnotationsInside +@JsonSerialize(using = ListSerializer.class) +public @interface Listable { +} diff --git a/sop-admin/sop-admin-backend/admin-common/src/main/java/com/gitee/sop/admin/common/jackson/convert/serde/ListSerializer.java b/sop-admin/sop-admin-backend/admin-common/src/main/java/com/gitee/sop/admin/common/jackson/convert/serde/ListSerializer.java new file mode 100755 index 00000000..ca7ae539 --- /dev/null +++ b/sop-admin/sop-admin-backend/admin-common/src/main/java/com/gitee/sop/admin/common/jackson/convert/serde/ListSerializer.java @@ -0,0 +1,52 @@ +package com.gitee.sop.admin.common.jackson.convert.serde; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; + +/** + *
+ * {@literal + * 将数字类型转换成布尔 + * + * 支持:"["a", "b"]", "[1,2]", "1,2,3" + * + * @Listable + * private String appList; // 返回给前端: "appList": ["xx"] + * + * } + *+ * + * @author 六如 + */ +@Slf4j +public class ListSerializer extends JsonSerializer