11 種序列化庫對比 DSL、fastjson、gson、jackson、protocol buffer、Thrift、Hession、Kryo、Fst、Messagepack、Jboss Marshaling

老马啸西风發表於2024-07-13

為什麼需要 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 的統一封裝

相關文章