为什么需要 json

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

常见的序列化库对比

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

特性DSL-JsonFastjsonGsonJacksonGoogle Protocol BuffersApache ThriftHessianKryoFSTMessagePackJBoss Marshalling
类型JSON库JSON库JSON库JSON库二进制序列化跨语言序列化二进制序列化二进制序列化二进制序列化二进制序列化二进制序列化
序列化性能高效快速一般高效高效高效一般高效超高效高效高效
反序列化性能高效快速一般高效高效高效一般高效超高效高效高效
支持的数据格式JSONJSONJSONJSON, XML, YAML等ProtobufThrift二进制, 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 的统一封装