stash/vendor/github.com/json-iterator/go
SmallCoccinelle 45f700d6ea
Support Go 1.18: Upgrade gqlgen to v0.17.2 ()
* Upgrade gqlgen to v0.17.2

This enables builds on Go 1.18. github.com/vektah/gqlparser is upgraded
to the newest version too.

Getting this to work is a bit of a hazzle. I had to first remove
vendoring from the repository, perform the upgrade and then re-introduce
the vendor directory. I think gqlgens analysis went wrong for some
reason on the upgrade. It would seem a clean-room installation fixed it.

* Bump project to 1.18

* Update all packages, address gqlgenc breaking changes

* Let `go mod tidy` handle the go.mod file

* Upgrade linter to 1.45.2

* Introduce v1.45.2 of the linter

The linter now correctly warns on `strings.Title` because it isn't
unicode-aware. Fix this by using the suggested fix from x/text/cases
to produce unicode-aware strings.

The mapping isn't entirely 1-1 as this new approach has a larger iface:
it spans all of unicode rather than just ASCII. It coincides for ASCII
however, so things should be largely the same.

* Ready ourselves for errchkjson and contextcheck.

* Revert dockerfile golang version changes for now

Co-authored-by: Kermie <kermie@isinthe.house>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
2022-04-02 18:08:14 +11:00
..
.codecov.yml
.gitignore
.travis.yml
Gopkg.lock
Gopkg.toml
LICENSE
README.md Support Go 1.18: Upgrade gqlgen to v0.17.2 () 2022-04-02 18:08:14 +11:00
adapter.go
any.go
any_array.go
any_bool.go
any_float.go
any_int32.go
any_int64.go
any_invalid.go
any_nil.go
any_number.go
any_object.go
any_str.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
any_uint32.go
any_uint64.go
build.sh
config.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
fuzzy_mode_convert_table.md
iter.go
iter_array.go
iter_float.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
iter_int.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
iter_object.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
iter_skip.go
iter_skip_sloppy.go
iter_skip_strict.go
iter_str.go
jsoniter.go
pool.go
reflect.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
reflect_array.go
reflect_dynamic.go
reflect_extension.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
reflect_json_number.go
reflect_json_raw_message.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
reflect_map.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
reflect_marshaler.go
reflect_native.go
reflect_optional.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
reflect_slice.go
reflect_struct_decoder.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
reflect_struct_encoder.go
stream.go Bump viper version, fix nobrowser () 2021-11-12 09:21:04 +11:00
stream_float.go
stream_int.go
stream_str.go
test.sh

README.md

Sourcegraph GoDoc Build Status codecov rcard License Gitter chat

A high-performance 100% compatible drop-in replacement of "encoding/json"

Benchmark

benchmark

Source code: https://github.com/json-iterator/go-benchmark/blob/master/src/github.com/json-iterator/go-benchmark/benchmark_medium_payload_test.go

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)

More documentation

How to get

go get github.com/json-iterator/go

Contribution Welcomed !

Contributors

Report issue or pull request, or email taowen@gmail.com, or Gitter chat