Fast JSON encoder/decoder compatible with encoding/json for Go
Go to file
Masaaki Goshima 12c1c98305
Merge pull request #27 from goccy/feature/improve-performance
Improve encoder performance ( remove unnecessary reference )
2020-08-15 22:49:52 +09:00
.github/workflows Create go.yml 2020-04-26 12:11:35 +09:00
benchmarks Add benchmark for large struct 2020-07-31 20:28:04 +09:00
cmd/generator Add AnonymousOmitEmpty type 2020-08-15 18:17:48 +09:00
LICENSE Initial commit 2020-04-19 18:32:37 +09:00
README.md Add Compact/Indent/HTMLEscape/Valid 2020-08-12 16:54:15 +09:00
compact.go Fix compact/indent 2020-08-14 18:18:32 +09:00
decode.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_array.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_bool.go Fix Compact 2020-08-14 18:18:32 +09:00
decode_compile.go Add stream decoder 2020-05-24 21:31:10 +09:00
decode_context.go Add benchmark for medium struct 2020-07-31 20:24:39 +09:00
decode_float.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_int.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_interface.go Add decoder for escape character 2020-08-14 18:18:32 +09:00
decode_map.go Fix typo 2020-08-14 18:18:32 +09:00
decode_number.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_ptr.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_slice.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_stream.go Refactor 2020-08-14 18:26:42 +09:00
decode_string.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_struct.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_test.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_uint.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_unmarshal_json.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
decode_unmarshal_text.go Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
encode.go Improve encoder performance ( remove unnecessary reference ) 2020-08-15 22:45:29 +09:00
encode_compile.go Fix unnecessary recursive operation 2020-08-15 21:13:08 +09:00
encode_map112.go Fix build 2020-04-26 12:49:54 +09:00
encode_map113.go Fix build 2020-04-26 12:49:54 +09:00
encode_opcode.go Remove unused field 2020-08-15 18:38:26 +09:00
encode_optype.go Add AnonymousOmitEmpty type 2020-08-15 18:17:48 +09:00
encode_string.go Support SetEscapeHTML 2020-05-03 17:41:33 +09:00
encode_test.go Add AnonymousOmitEmpty type 2020-08-15 18:17:48 +09:00
encode_vm.go Merge pull request #25 from goccy/feature/support-anonymous-struct 2020-08-15 18:40:52 +09:00
error.go Support SyntaxError 2020-05-23 12:51:09 +09:00
export_test.go Fix Compact 2020-08-14 18:18:32 +09:00
go.mod Removed dependency on xerrors 2020-05-09 01:49:37 +09:00
go.sum Removed dependency on xerrors 2020-05-09 01:49:37 +09:00
helper_test.go Fix null value for struct field 2020-08-08 13:20:42 +09:00
indent.go Fix compact/indent 2020-08-14 18:18:32 +09:00
json.go Fix compact/indent 2020-08-14 18:18:32 +09:00
json_test.go Fix test case 2020-08-14 18:18:32 +09:00
rtype.go Add error type compatible with encoding/json 2020-05-09 01:07:33 +09:00

README.md

go-json

Go GoDoc

Fast JSON encoder/decoder compatible with encoding/json for Go

Installation

go get github.com/goccy/go-json

How to use

Replace import statement from encoding/json to github.com/goccy/go-json

-import "encoding/json"
+import "github.com/goccy/go-json"

Benchmarks

$ cd benchmarks
$ go test -bench .

Encode

Fastest

SmallStruct

MediumStruct

LargeStruct

Decode

So faster than json-iterator/go

json.Unmarshal

SmallStruct

MediumStruct

LargeStruct

Stream Decode

SmallStruct

MediumStruct

LargeStruct

Status

Type

Currently supported all types

API

Implements All APIs

Error

  • InvalidUTF8Error
  • InvalidUnmarshalError
  • MarshalerError
  • SyntaxError
  • UnmarshalFieldError
  • UnmarshalTypeError
  • UnsupportedTypeError
  • UnsupportedValueError

License

MIT