皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

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

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 吐槽或者点赞。

转自 https://www.oschina.net/news/98941/j2cache-2-4-1-with-json-enhanced