- 目前版本的fastjon默认对enum对象使用WriteEnumUsingName属性,因此会将enum值序列化为其Name。
- 使用WriteEnumUsingToString方法可以序列化时将Enum转换为toString()的返回值;同时override toString函数能够将enum值输出需要的形式。但是这样做会带来一个问题,对应的反序列化使用的Enum的静态方法valueof可能无法识别自行生成的toString(),导致反序列化出错。
-
如果将节省enum序列化后的大小,可以将enum序列化其ordinal值,保存为int类型。fastJson在反序列化时,如果值为int,则能够使用ordinal值匹配,找到合适的对象。
fastjson要将enum序列化为ordinal只需要禁止WriteEnumUsingName feature。
首先根据默认的features排除WriteEnumUsingName,然后使用新的features序列化即可。int features=SerializerFeature.config(JSON.DEFAULT_GENERATE_FEATURE, SerializerFeature.WriteEnumUsingName, false)
JSON.toJSONString(obj,features,SerializerFeature.EMPTY);
相关文章
- C# Note4:XML序列化和反序列化(含加密解密等)
- [Linux理论基础1]----手写和使用json完成[序列化和反序列化]
- 【Django drf】 序列化类常用字段类和字段参数 定制序列化字段的两种方式 关系表外键字段的反序列化保存 序列化类继承ModelSerializer 反序列化数据校验源码分析
- java基础知识回顾之javaIO类--java序列化和反序列化
- 【踩坑】利用fastjson反序列化需要默认构造函数
- XML序列化和反序列化
- python3 中的Json序列化、反序列化 和 字符编码的问题解决
- ArcObjects SDK开发 025 AO中对象的序列化和反序列化
- Java基础学习总结——Java对象的序列化和反序列化
- 在C#中,Json的序列化和反序列化的几种方式总结 转载