Awesome
<a href="https://goreportcard.com/report/github.com/romshark/jscan-experimental-decoder"> <img src="https://goreportcard.com/badge/github.com/romshark/jscan-experimental-decoder" alt="GoReportCard"> </a> <a href='https://coveralls.io/github/romshark/jscan-experimental-decoder/?branch=main'> <img src='https://coveralls.io/repos/github/romshark/jscan-experimental-decoder/badge.svg?branch=main' alt='Coverage Status' /> </a>Experimental JSON decoder based on jscan
⚠️ Don't use in production! ⚠️
This is an experimental JSON Unmarshaler/Decoder implementation for Go based on jscan. This decoder will be moved to jscan v3 once it's ready for production.
The jscan decoder is expected to be a backward compatible drop-in replacement for encoding/json.
Roadmap:
- Primitive types
- Struct types
- Type
struct{}
- Recursive struct types
- Type
- Slices
- Arrays
- Type
any
- Type
map
-
string
keys -
encoding.TextUnmarshaler
keys - Integer keys
-
- JSON struct tags
- Case-insensitive key matching (backward-compatibility feature of
encoding/json
) - Option
DisallowUnknownFields
- Option
DisableFieldNameUnescaping
- Option
DisableCaseInsensitiveMatching
- Option
DisallowDuplicateNames
- Struct tag option
string
- Case-insensitive key matching (backward-compatibility feature of
- Pointers
- Type
Unmarshaler interface { UnmarshalJSON([]byte) error }
- Type
TextUnmarshaler interface { UnmarshalText(text []byte) error }
-
encoding/json
compatible drop-in replacement packagejscandec/std
-
encoding/json
compatible error messages
-