1.自定义的枚举状态码 全部定义 value字段 ,定一个通用的接口实现 getValue 2.自己的枚举实现这个接口 3.定义序列化器,需要带泛型,这样才通用 publicclassBaseEnumDeserializer<TextendsEnum<T>&EnumWithValue>implementsObjectDeserializer{@OverridepublicTdeserialze(DefaultJSONParserparser,Typetype,ObjectfieldName){/...
使用默认的toString方法进行枚举序列化的方式存在一定的限制,例如,如果我们想将枚举常量的值序列化为整数而不是字符串,或者将枚举常量的属性字段也进行序列化,就需要使用自定义序列化器来实现。 在Fastjson中,我们可以通过实现`com.alibaba.fastjson.serializer.JSONSerializable`接口来自定义枚举的序列化器。首先,我们需要...
fastjson序列化枚举 在使用Fastjson进行枚举的序列化和反序列化时,可以使用@JsonField注解标记枚举字段,并使用@JsonValue注解指定序列化时的值。 下面是一个示例: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation.JSONField; public class EnumSerializationExample { public static ...
// 序列化为JSON输出,枚举值为 getName() User user = new User(1, Gender.UNKNOW); String jsonString = JSON.toJSONString(user); System.out.println(jsonString); // {"gender":"不知道","id":1} // 反序列化为对象 user = JSON.parseObject(jsonString, User.class); System.out.println(user...
序列化为ordinal()值 全局设置 代码跟上面没有变化,就需要在开头添加一句代码,任何枚举,都会被序列化为ordinal()值 JSON.DEFAULT_GENERATE_FEATURE &= ~SerializerFeature.WriteEnumUsingName.mask; // 全局设置,枚举的序列化使用 ordinal()JSON.DEFAULT_GENERATE_FEATURE &= ~SerializerFeature.WriteEnumUsingName.mask...
在序列化时,通过JSON.toJSONString等方法的重载版本传入SerializerFeature枚举值来控制序列化特性。 String jsonStr = JSON.toJSONString(obj, SerializerFeature.PrettyFormat); // 格式化输出 1. 2.3. SerializeConfig 用途:全局配置序列化行为,如自定义序列化器、日期格式等。
1. 枚举常量 WriteMapNullValue ,序列化null值的字段 @Test//WriteMapNullValue 枚举中的常量,序列化...
FastJson序列化枚举类 FastJson序列化枚举类 场景说明 ⽐如我们想打印返回参数的具体情况,如果⾥⾯有枚举类型,打印的参数不完整。@Getter 默认序列化⽅式 运⾏结果:{"age":11,"name":"张三","resultEnum":"SUCCESS"},并不是我想要的结果,枚举类型属性没打印出来设置枚举序列化 ...
要输出Enum.name,使用JSONWriter.Feature.WriteEnumsUsingName),如下:
序列化为自定义属性 很多人也喜欢给枚举定义一个私有的属性,序列化为JSON时,希望以这个属性值作为value,这个时候就需要自己定义JSON的序列化和反序列化实现了。Fastjson提供了2个接口。用户控制序列化和反序列化行为,这个实在是太简单,这里不多说。看代码