J2Cache 2.4.1 发布,增强 JSON 序列化体验

2018年08月14日

J2Cache 上一个版本 2.4.0 我们首次引入了对 JSON 序列化的支持,JSON 序列化是基于 FST 实现的类型无关的序列化技术。JSON 的对象序列化为 J2Cache 实现跨语言支持奠定了基础。

但是 FST 在序列化时,一些诸如类型、对象等元数据用的字段名称经常会有缓存对象的名称有冲突,例如 FST 用 typ 来标识对象的类型,用 obj 来标识对象本身等。为了能与正常对象的属性名区分开,这次 2.4.1 版本对这些元数据名称进行了重新定义,如下表所示:

FST 属性名调整后的属性名说明
typ@type标识对象类型,如类名
obj
@object对象本身
styp
@stype
seq@seq
enum@enum枚举类型
val
@value
ref@ref

下面是一个对象序列化成 JSON 数据的样子:

{"@type":"person","@object":{"age":19,"jobs":{"@type":"map","@object":[4,"creawor",3,"huateng",3,"moabc",5,"oschina",8]},"schoolList":{"@type":"list","@object":[4,{"@type":"school","@object":{"random":652,"name":"西北工业大学"}},{"@type":"school","@object":{"random":579,"name":"泉州第五中学"}},{"@type":"school","@object":{"random":549,"name":"城东中学"}},{"@type":"school","@object":{"random":891,"name":"洛南小学"}}]},"name":"Winter Lau"}}

此外,2.4.1 版本还新增自定义 FST 类型序列化对应短名称,上面的 JSON 数据中,@type 值为 person ,其实对应的全类名是 net.oschina.j2cache.Person ,可直接在 j2cache.properties 中进行配置:

json.map.person = net.oschina.j2cache.Person

这样首先是减小 JSON 的体积,其次是更便于在多语言环境中使用。

此外,该版本还增加了使用 fastjson 进行序列化的扩展,但是经测试,暂时不推荐使用。

Maven:

<dependency>
  <groupId>net.oschina.j2cache</groupId>
  <artifactId>j2cache-core</artifactId>
  <version>2.4.1-release</version>
</dependency>

即刻前往 https://gitee.com/ld/J2Cache 吐槽或者点赞。

展开阅读全文
7 收藏
分享
加载中
精彩评论
报告:OSC Android客户端有bug,文章收藏点了★不会变色
2018-08-14 07:53
2
举报
最新评论 (11)
天天快乐
2018-08-14 20:51
0
回复
举报
给你点赞为你打电话~
2018-08-14 16:42
0
回复
举报
大家先不要升级,等下午的bugfix
2018-08-14 13:50
0
回复
举报
又现bug了?
2018-08-14 13:17
0
回复
举报

引用来自“ming133”的评论

ios收藏也有问题,半天才提示错误信息@红薯
今天会修复
2018-08-14 10:33
0
回复
举报
你们都是坏人,总喜欢调侃红薯的开源项目出bug,你们就不能和红薯纯洁点吗?
2018-08-14 09:18
0
回复
举报
ios收藏也有问题,半天才提示错误信息@红薯
2018-08-14 09:06
0
回复
举报
json 与类型无关,所以遇到抽象类或接口就很难反序列化了。
2018-08-14 08:13
0
回复
举报
报告:OSC Android客户端有bug,文章收藏点了★不会变色
2018-08-14 07:53
2
回复
举报
大家先不要升级,等下午的bugfix
2018-08-14 07:45
0
回复
举报
更多评论
11 评论
7 收藏
分享
返回顶部
顶部