jsoniter java_jsoniter:全世界最快的 JSON 解析器(Java & Go)

jsoniter(json-iterator)是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本

jsoniter 有何独特之处? Jsoniter 是最快的 JSON 解析器。它最多能比普通的解析器快10倍之多,即使在数据绑定的用法下也有同样的性能优势。无耻地献上自己的 跑分

非常易于使用的 api,允许你使用任何风格或者混搭的方式来解析 JSON。给你前所未有的灵活性。来看看这些 API们 是不是真的有那么好用吧

独特的 iterator api 能够直接遍历 JSON,极致性能!0 内存分配!这样的 iterator 你绝对没有用过

忍不住要显摆一下。完整报告请看性能评测,对于性能优化是怎么做的有详尽的解释。

Java 版本数据绑定用法下的性能

9186264bc39f3c8f3a5b98101ff97faa.png

Go 版本数据绑定用法下的性能

4c4acf9ebdea51f50b78eec0f2a1807e.png

Bind-API 最熟悉的老味道

没有特殊需求的时候,应该作为默认的最佳选择。对于这个 JSON 文档 [0,1,2,3]

使用 Java bind-api

import com.jsoniter.Jsoniter;

Jsoniter iter = Jsoniter.parse("[0,1,2,3]");

int[] val = iter.read(int[].class);

System.out.println(val[3]);

复制代码

使用 Go bind-api

import "github.com/json-iterator/go"

iter := jsoniter.ParseString(`[0,1,2,3]`)

val := []int{}

iter.Read(&val)

fmt.Println(val[3])

复制代码

Iterator-API 用于快速抽取数据

不用把数据全部读出来,只是选择性抽取

使用 Java iterator-api

import com.jsoniter.Jsoniter;

Jsoniter iter = Jsoniter.parse("[0, [1, 2], [3, 4], 5]");

int count = 0;

while(iter.readArray()) {

iter.skip();

count++;

}

System.out.println(count); // 4

复制代码

使用 Go iterator-api

import "github.com/json-iterator/go"

iter := ParseString(`[0, [1, 2], [3, 4], 5]`)

count := 0

for iter.ReadArray() {

iter.skip()

count++

}

fmt.Println(count) // 4

复制代码

Any-API 具有最好的灵活性

使用 Java any-api

import com.jsoniter.Jsoniter;

Jsoniter iter = Jsoniter.parse("[{'field1':'11','field2':'12'},{'field1':'21','field2':'22'}]".replace('\'', '"'));

Any val = iter.readAny();

System.out.println(val.toInt(1, "field2")); // 22

复制代码

注意你可以从嵌套的结构中直接取数据出来,并且转换成任意你想要的类型。

使用 Go any-api

import "github.com/json-iterator/go"

iter := jsoniter.ParseString(`[{"field1":"11","field2":"12"},{"field1":"21","field2":"22"}]`)

val := iter.ReadAny()

fmt.Println(val.ToInt(1, "field2")) // 22

复制代码

怎样获取

Java 版本

com.jsoniter

jsoniter

0.9.1

复制代码

Go 版本

go get github.com/json-iterator/go

复制代码

欢迎你的贡献

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值