JSON

Fastest JSON parser ever

字号+ 作者:H5之家 来源:H5之家 2017-11-13 14:21 我要评论( )

jsoniter(json-iterator)是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本。从 dsljson 和jsonparser 借鉴了大量代码。 就是快! Go开发者们请加入我们,滴滴出行平台技术部 taowen@didichuxing.com 主流的 JSON 解析器是非常慢的。Jsoniter J

jsoniter(json-iterator)是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本。从 dsljson 和jsonparser 借鉴了大量代码。

就是快!

Go开发者们请加入我们,滴滴出行平台技术部 taowen@didichuxing.com

主流的 JSON 解析器是非常慢的。Jsoniter Java 版本可以比常用的 jackson/gson/fastjson 快 3 倍。如果你需要处理大量的 JSON 格式的日志,你应该考虑一下用 dsl-json 或者 Jsoniter 来节约可观的成本。根据 dsl-json 的性能评测,JSON 格式序列化和反序列化的速度其实一点都不慢,甚至比 thrift/avro 还要快。

protobuf-vs-jsoniter

Jsoniter 的 Golang 版本可以比标准库(encoding/json)快 6 倍之多。而且这个性能是在不使用代码生成的前提下获得的。

go-medium

完整报告请看性能评测,对于有详尽的解释。

啥都能一行搞定!

Jsoniter 的目标就是帮你把事搞定,越快越好。最常见的用法只需要一行:

如果这就是 Jsoniter 的一切本领,那么它不过是个平庸之辈而已。然而 Jsoniter 源于作者使用现有解析器时的不满与愤怒,它绝不会别人的老路的。想要体会到 Jsoniter 的独特体验能带来什么,我们来比较一下现有常规的 JSON API 的使用体验。

根据过去的老经验,你一定知道下面这种用法是效率很低而且笨拙的,但是有些时候又不得不这么用:

想要最佳的性能以及代码工整,你最好定义一个类来指定数据的格式:

在写正式的业务逻辑的代码时,这当然是很好的实践。但是如果你只是想从一个JSON嵌套结构里取一个内部的字符串的值的时候,必须提前定义每层数据结构未免有点太费周章了。能一行搞定的,就别费那么些话了:

deserialize 的返回值类型是“Any”,它有点类似于 Map<String, Object>。两者都是通用的数据容器,但是和 Map<String, Object> 不同,Any 有通过 api 使得数据获取上更方便:

更好的消息是,这种 schema-less 的体验在延迟解析技术的帮助下,做到了性能上的无损。所有没有别读取的字段,仍然会以 JSON 的原始格式保留。使用 Any 的性能要比使用 Map<String, Object> 好得多。现在,在 Java 语言中,你也体会到 Javascript 或者 PHP 解析 JSON 时那种丝滑般体验。.

Jsoniter 不仅仅在运行时要做最快的解析器,也同时非常努力地变成代码写起来最方便的解析器。

从别的库迁移过来很容易 文档

Jsoniter 功能多多,文档以例子为主。有很多代码示例来演示这些常用任务如何实现:

怎样获取

Java 版本

<dependency> <groupId>com.jsoniter</groupId> <artifactId>jsoniter</artifactId> <version>0.9.16</version> </dependency>

Go 版本

go get github.com/json-iterator/go

欢迎你的贡献

小项目bug难免,欢迎提 issue 和 pull request

京ICP备16068519号

jsoniterJava 0.9.16 jsoniterGo 1.0.3

This document is also available as

  • English
  • 中文
  • created by taowen@gmail.com

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 让excel 表达复杂json格式,并导出json。

      让excel 表达复杂json格式,并导出json。

      2017-11-13 15:00

    • PHPJSON学习笔记

      PHPJSON学习笔记

      2017-11-13 13:38

    • 利用 Java 6 javax.script 包直接处理 JSON

      利用 Java 6 javax.script 包直接处理 JSON

      2017-11-12 11:22

    • Golang处理JSON(二)

      Golang处理JSON(二)

      2017-11-12 09:07

    网友点评
    <