DSL、fastjson、gson、jackson、protocol buffer、Thrift、Hession、Kryo、Fst 对比

为什么需要 json

不同语言之间,或者相同语言之间。需要一种对象到 json (持久化)的一种实现方式。以及反序列化的方式。

常见的序列化库对比

以下是 DSL、fastjson、Gson、Jackson、Google Protocol Buffers、Apache Thrift、Hessian、Kryo、Fst、MessagePack 和 JBoss Marshalling 的详细对比表格:

特性 DSL-Json Fastjson Gson Jackson Google Protocol Buffers Apache Thrift Hessian Kryo FST MessagePack JBoss Marshalling
类型 JSON库 JSON库 JSON库 JSON库 二进制序列化 跨语言序列化 二进制序列化 二进制序列化 二进制序列化 二进制序列化 二进制序列化
序列化性能 高效 快速 一般 高效 高效 高效 一般 高效 超高效 高效 高效
反序列化性能 高效 快速 一般 高效 高效 高效 一般 高效 超高效 高效 高效
支持的数据格式 JSON JSON JSON JSON, XML, YAML等 Protobuf Thrift 二进制, JSON 二进制 二进制 二进制, JSON 二进制
数据类型支持 JVM数据类型 JVM数据类型 JVM数据类型 广泛支持 结构化数据 结构化数据 结构化数据 结构化数据 结构化数据 结构化数据 结构化数据
跨语言支持
版本兼容性 较好 较好 较好 较好 良好 良好 良好 较好 较好 较好 良好
复杂对象支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持 支持
可扩展性
序列化/反序列化库 自带 自带 自带 自带 自带 自带 自带 自带 自带 自带 自带
学习曲线
社区支持 较小

总结

  • DSL-JsonJackson 提供了高效的 JSON 序列化性能。
  • FastjsonGson 是常用的 JSON 库,易于使用但性能稍逊。
  • Google Protocol BuffersApache Thrift 提供跨语言支持的高效序列化方案。
  • KryoFST 提供了非常高效的二进制序列化。
  • HessianJBoss Marshalling 是稳定的二进制序列化方案,适用于 Java 应用。

json 系列

字符串

DSL-JSON 最快的 java 实现

Ali-FastJson

Google-Gson

Jackson

二进制

Google protocol buffer

Apache Thrift

Hession

Kryo

Fst

Messagepack

Jboss Marshaling

其他

JsonPath

JsonIter

开源库

json 针对常见 json 的统一封装

相关推荐
草莓熊Lotso1 天前
C++11 核心特性实战:列表初始化 + 右值引用与移动语义(附完整代码)
java·服务器·开发语言·汇编·c++·人工智能·经验分享
CoderYanger1 天前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目
java·c语言·开发语言·数据结构·算法·leetcode·职场和发展
C++业余爱好者1 天前
Java 提供了8种基本数据类型及封装类型介绍
java·开发语言·python
想用offer打牌1 天前
RocketMQ如何防止消息丢失?
java·后端·架构·开源·rocketmq
皮卡龙1 天前
Java常用的JSON
java·开发语言·spring boot·json
利刃大大1 天前
【JavaSE】十三、枚举类Enum && Lambda表达式 && 列表排序常见写法
java·开发语言·枚举·lambda·排序
float_六七1 天前
Java反射:万能遥控器拆解编程
java·开发语言
han_hanker1 天前
java 异常类——详解
java·开发语言
源码获取_wx:Fegn08951 天前
基于springboot + vue健身房管理系统
java·开发语言·前端·vue.js·spring boot·后端·spring
峥嵘life1 天前
Android16 EDLA 认证测试CTS问题分析解决
android·java·服务器