Spearal 是一个全新、开源的序列化协议,该协议旨在替换 JSON 序列化协议,并将 HTML 和移动应用直接连接到 Java 的后端。Spearal 能够保证端点间复杂数据结构的传输能够良好的运行,它还提供了在标准 JSON 序列化协议中没有的高级功能, 如局部对象序列化、正确处理 JPA 未初始化的属性和外键属性、对象特性过滤等。目前,尽管 Spearal 还处在初期开发阶段, 不过已经实现了对 JavaScript 和 Java 的支持,基本实现了对 Android 的支持;iOS 版本使用苹果的新语言 Swift,目前还在初级开发阶段,还实现了对 JAX-RS 以及 Spring 的集成。当前,随着 Web 的不断发展以及异步数据请求在移动应用上的大规模应用,传送数据的序列化已经变成了一个重大问题,并且应用之间数据交换的事实标准的 JSON 存在着固有的一些不足,如它不能对自循环的对象序列化、缺乏对对象引用的支持、不保存所序列化对象的类名。尽管这些问题能够通过非标准的方法来解决,但是非标准方法的 JSON 编码和解码的效率相对比较低。而 Spearal 旨在突破 JSON 序列化协议的以上不足并替换 JSON 序列化协议。
另外,Spearal 项目托管在 GitHub 上,遵循 Apache 2.0 开源协议发布,相关子项目包括 Spearal JS 、 Spearal Java 、 Spearal Jpa2 、 Spearal Jaxrs 、 Spearal Spring ,目前还提供通过 Maven构建Spearal 的所有模块的方式。更多Spearal 相关信息请登录 GitHub 上的项目主页和 Spearal 官网。目前,除了 JSON 和 Spearal 序列化协议外,还有轻量级的 Hessian 序列化协议、可扩展的序列化协议 OceanBase、Google 的 protocol buffer 协议等。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论