You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35b238ee82
This might break compatibility with projects using this module that are still on go1.16, which is EOL, so probably ok to ignore: github.com/docker/buildx/store imports github.com/gofrs/flock tested by github.com/gofrs/flock.test imports gopkg.in/check.v1 loaded from gopkg.in/check.v1@v1.0.0-20200227125254-8fa46927fb4f, but go 1.16 would select v1.0.0-20201130134442-10cb98267c6c To upgrade to the versions selected by go 1.16: go mod tidy -go=1.16 && go mod tidy -go=1.17 If reproducibility with go 1.16 is not needed: go mod tidy -compat=1.17 For other options, see: https://golang.org/doc/modules/pruning Signed-off-by: Sebastiaan van Stijn <github@gone.nl> |
3 years ago | |
---|---|---|
.. | ||
.codecov.yml | 6 years ago | |
.gitignore | 6 years ago | |
.travis.yml | 6 years ago | |
Gopkg.lock | 6 years ago | |
Gopkg.toml | 6 years ago | |
LICENSE | 6 years ago | |
README.md | 3 years ago | |
adapter.go | 5 years ago | |
any.go | 6 years ago | |
any_array.go | 6 years ago | |
any_bool.go | 6 years ago | |
any_float.go | 6 years ago | |
any_int32.go | 6 years ago | |
any_int64.go | 6 years ago | |
any_invalid.go | 6 years ago | |
any_nil.go | 6 years ago | |
any_number.go | 6 years ago | |
any_object.go | 6 years ago | |
any_str.go | 4 years ago | |
any_uint32.go | 6 years ago | |
any_uint64.go | 6 years ago | |
build.sh | 6 years ago | |
config.go | 4 years ago | |
fuzzy_mode_convert_table.md | 6 years ago | |
iter.go | 4 years ago | |
iter_array.go | 4 years ago | |
iter_float.go | 3 years ago | |
iter_int.go | 3 years ago | |
iter_object.go | 4 years ago | |
iter_skip.go | 5 years ago | |
iter_skip_sloppy.go | 4 years ago | |
iter_skip_strict.go | 6 years ago | |
iter_str.go | 6 years ago | |
jsoniter.go | 6 years ago | |
pool.go | 6 years ago | |
reflect.go | 3 years ago | |
reflect_array.go | 6 years ago | |
reflect_dynamic.go | 6 years ago | |
reflect_extension.go | 4 years ago | |
reflect_json_number.go | 6 years ago | |
reflect_json_raw_message.go | 3 years ago | |
reflect_map.go | 4 years ago | |
reflect_marshaler.go | 4 years ago | |
reflect_native.go | 5 years ago | |
reflect_optional.go | 4 years ago | |
reflect_slice.go | 6 years ago | |
reflect_struct_decoder.go | 3 years ago | |
reflect_struct_encoder.go | 4 years ago | |
stream.go | 4 years ago | |
stream_float.go | 5 years ago | |
stream_int.go | 6 years ago | |
stream_str.go | 6 years ago | |
test.sh | 6 years ago |
README.md
A high-performance 100% compatible drop-in replacement of "encoding/json"
Benchmark
Raw Result (easyjson requires static code generation)
ns/op | allocation bytes | allocation times | |
---|---|---|---|
std decode | 35510 ns/op | 1960 B/op | 99 allocs/op |
easyjson decode | 8499 ns/op | 160 B/op | 4 allocs/op |
jsoniter decode | 5623 ns/op | 160 B/op | 3 allocs/op |
std encode | 2213 ns/op | 712 B/op | 5 allocs/op |
easyjson encode | 883 ns/op | 576 B/op | 3 allocs/op |
jsoniter encode | 837 ns/op | 384 B/op | 4 allocs/op |
Always benchmark with your own workload. The result depends heavily on the data input.
Usage
100% compatibility with standard lib
Replace
import "encoding/json"
json.Marshal(&data)
with
import jsoniter "github.com/json-iterator/go"
var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Marshal(&data)
Replace
import "encoding/json"
json.Unmarshal(input, &data)
with
import jsoniter "github.com/json-iterator/go"
var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Unmarshal(input, &data)
How to get
go get github.com/json-iterator/go
Contribution Welcomed !
Contributors