Fast JSON encoder/decoder compatible with encoding/json for Go
Go to file
Masaaki Goshima e112aa753e Support DisallowUnknownFields 2020-08-11 19:05:20 +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
LICENSE Initial commit 2020-04-19 18:32:37 +09:00
README.md Update README.md 2020-08-02 17:38:04 +09:00
decode.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_array.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_bool.go Support DisallowUnknownFields 2020-08-11 19:05:20 +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 Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_int.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_interface.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_map.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_number.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_ptr.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_slice.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_stream.go Support json.Number 2020-08-11 18:04:32 +09:00
decode_string.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_struct.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_test.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_uint.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_unmarshal_json.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
decode_unmarshal_text.go Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
encode.go Fix parallel encoding 2020-08-09 17:55:49 +09:00
encode_compile.go Fix encoding of struct field after omitempty field 2020-08-08 18:53:01 +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 Fix parallel encoding 2020-08-09 17:55:49 +09:00
encode_string.go Support SetEscapeHTML 2020-05-03 17:41:33 +09:00
encode_test.go Fix encoding of struct field after omitempty field 2020-08-08 18:53:01 +09:00
encode_vm.go Fix encoding of struct field after omitempty field 2020-08-08 18:53:01 +09:00
error.go Support SyntaxError 2020-05-23 12:51:09 +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
json.go Support RawMessage 2020-08-11 18:11:13 +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

  • Compact
  • HTMLEscape
  • Indent
  • Marshal
  • MarshalIndent
  • Unmarshal
  • Valid
  • NewDecoder
  • (*Decoder).Buffered
  • (*Decoder).Decode
  • (*Decoder).DisallowUnknownFields
  • (*Decoder).InputOffset
  • (*Decoder).More
  • (*Decoder).Token
  • (*Decoder).UseNumber
  • Delim
  • (Delim).String
  • NewEncoder
  • (*Encoder).Encode
  • (*Encoder).SetEscapeHTML
  • (*Encoder).SetIndent

Error

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

License

MIT