内容简介:J2Cache 上一个版本 2.4.0 我们首次引入了对 JSON 序列化的支持,JSON 序列化是基于 FST 实现的类型无关的序列化技术。JSON 的对象序列化为 J2Cache 实现跨语言支持奠定了基础。 但是 FST 在序列化时,一些诸如类...
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 吐槽或者点赞。
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。