一个高性能、100% 兼容的"encoding/json"替换方案
一个高性能、100%兼容的"encoding/json"替代方案。
| ns/op | 分配字节数 | 分配次数 | |
|---|---|---|---|
| std decode | 35510 ns/op | 1960 B/op | 99 分配次数/次操作 |
| easyjson decode | 8499 ns/op | 160 B/op | 4 分配次数/次操作 |
| jsoniter decode | 5623 ns/op | 160 B/op | 3 分配次数/次操作 |
| std encode | 2213 ns/op | 712 B/op | 5 分配次数/次操作 |
| easyjson encode | 883 ns/op | 576 B/op | 3 分配次数/次操作 |
| jsoniter encode | 837 ns/op | 384 B/op | 4 分配次数/次操作 |
总是使用自己的工作负载进行基准测试。
100% 与标准库兼容
jsoniter.Unmarshal 在输入以字母"n"开头时错误地将预初始化的 map[string]any 设置为 nil
错误:当两个结构体相互依赖时出现死循环。
错误: jsoniter.UnmarshalFromString
使用 Go 1.24 rc 和 GOARCH=386 进行分发失败
扁平非嵌入字段
支持 omitzero 标签
多个不同库的 RegisterTypeDecoderFunc 是否会覆盖?
支持数据类型自动转换
对象LazyAny中的错误。 未报告 " ToVal "
有时会感到恐慌……