go (json-iterator/go)
Searching Database…
这是什么?
一个高性能的 Go JSON 库,定位是标准库 encoding/json 的 100% 兼容替代品:只需换掉导入,代码其余部分保持不变。
它是一个我导入的库,还是一个我要运行的工具?
是一个 Go 库。你用它替换 encoding/json 的导入,然后在自己的代码中调用它——不涉及任何二进制程序、服务器或代码生成步骤。
我怎么把项目切换到它?
运行 go get github.com/json-iterator/go,然后把 encoding/json 的导入替换成 jsoniter。ConfigCompatibleWithStandardLibrary 这个配置可以保证行为和标准库完全一致。
除了 Go 本身,它还需要别的东西吗?
不需要——只要有 Go 工具链就行。和 easyjson 不同,它使用前不需要做静态代码生成。
这个项目还在积极维护吗?
不维护了——GitHub 仓库已经归档并设为只读,不会再有更新。这个库仍然可用,但不要指望有 bug 修复或新功能。
它在 Linux、macOS 和 Windows 上的表现会一样吗?
它对操作系统没有任何特殊要求:这是一个纯 Go 库,只要 Go 工具链能运行的地方,它就能构建和运行。
它比标准的 encoding/json 快多少?
按 README 的基准测试:解码为 5623 ns/op,标准库是 35510(约 6 倍),内存分配 3 次对 99 次;编码为 837 ns/op,标准库是 2213(约 2.6 倍),内存分配 384 字节对 712 字节。
在我自己的数据上也能看到同样的提速吗?
不一定——README 明确提醒一定要用你自己的实际负载做基准测试,因为结果在很大程度上取决于输入的数据。
它和 easyjson 相比怎么样?
在同一张基准测试表中,它两个方向都略快一些(解码 5623 对 8499 ns/op,编码 837 对 883),而且和 easyjson 不同,它不需要静态代码生成。
Which topics is it in?
json-parser, encoding, serialization, parsing, mit-license, parser, high-performance, json, golang, deprecated, benchmark, developers

