当使用fastjson进行枚举序列化时,fastjson默认会调用枚举的name()方法(即枚举常量的名称)来序列化枚举值。这意味着,如果你没有自定义序列化行为,fastjson将直接序列化枚举常量为其在枚举中定义的名称。以下是如何使用fastjson对包含枚举类型的Java对象进行序列化的详细步骤,包括如何自定义枚举类型的序列化方式。 1. 理解...
1.枚举类型介绍 在开始学习Fastjson的枚举序列化之前,首先我们需要了解什么是枚举类型。枚举类型是一种特殊的数据类型,它定义了一组常量值,这些常量值是类型安全的,不能改变。在Java中,枚举类型由关键字"enum"定义,可以包含方法和字段。 2.默认的toString方法序列化 在Java中,对于枚举类型的序列化,可以使用默认的toSt...
1.自定义的枚举状态码 全部定义 value字段 ,定一个通用的接口实现 getValue 2.自己的枚举实现这个接口 3.定义序列化器,需要带泛型,这样才通用 publicclassBaseEnumDeserializer<TextendsEnum<T>&EnumWithValue>implementsObjectDeserializer{@OverridepublicTdeserialze(DefaultJSONParserparser,Typetype,ObjectfieldName){/...
复现代码 import com.alibaba.fastjson2.*; import com.alibaba.fastjson2.util.ParameterizedTypeImpl; import org.junit.Test; import java.util.List; /** * @author 张治保 * date 2023/5/8 */ public class FastjsonTest { @Test public void test() { List<...
通常,fastjson在序列化及反序列化枚举时,一般以下几种策略: 1).根据枚举的name值序列化及反序列化(默认) 2).根据枚举的ordinal序列化及反序列化 3).根据枚举的toString方法序列化,但是反序列仍采取默认的策略 这显然对我们的业务处理不够灵活,考虑以下一种情况: ...
FastJson序列化枚举类 FastJson序列化枚举类 场景说明 ⽐如我们想打印返回参数的具体情况,如果⾥⾯有枚举类型,打印的参数不完整。@Getter 默认序列化⽅式 运⾏结果:{"age":11,"name":"张三","resultEnum":"SUCCESS"},并不是我想要的结果,枚举类型属性没打印出来设置枚举序列化 ...
简介:mvc配置fastjson序列化枚举 怯懦囚禁人的灵魂,希望可以令你感受到自由,强者自救,圣者渡人。——《肖申克的救赎》 我们可以使用SerializerFeature.WriteEnumUsingToString去完成枚举的序列化操作: 例如我这里某对象属性为枚举类型 我们当使用该POJO接收参数时,我们如果手动转换的话比较麻烦 ...
mvc配置fastjson序列化枚举 怯懦囚禁人的灵魂,希望可以令你感受到自由,强者自救,圣者渡人。——《肖申克的救赎》 我们可以使用SerializerFeature.WriteEnumUsingToString去完成枚举的序列化操作: 例如我这里某对象属性为枚举类型 我们当使用该POJO接收参数时,我们如果手动转换的话比较麻烦...
要输出Enum.name,使用JSONWriter.Feature.WriteEnumsUsingName),如下:
FastJson序列化枚举类 场景说明 比如我们想打印返回参数的具体情况,如果里面有枚举类型,打印的参数不完整。 @Getter@Setter@ToStringpublicclassResultResponse{privateString name;privateInteger age;privateResultEnum resultEnum; } publicenumResultEnum{ SUCCESS("0000","成功"),...