Appendix: References

Originally published in Japanese at https://zenn.dev/ymotongpoo/books/go-json-v2-history/viewer/99-references.

Official Go resources

Issues and discussions

NumberDescription
#14750Case-insensitive matching (2016-03-10 to 2025-06-27)
#4712Representation of time.Duration (closed 2017-02-17)
#63397The encoding/json/v2 Discussion (2023-10-05)
#71497The formal proposal (2025-01-31; accepted 2026-05-13)
#71631Default representation of time.Duration (closed 2025-12-18)
#79071Withdrawal of the format tag (2026-04-30)
#74472Typed struct tags proposal (on hold)
#76406json/v2 working group meeting minutes
#61716The math/rand/v2 proposal (accepted 2023-10-03)
#60751Positioning as the first v2 in the standard library
#67401The linkname lockdown

Prototype and benchmarks

Third parties

Standard library sources quoted in this book

DescriptionFile
The list of v1 legacy behavior flagssrc/encoding/json/internal/jsonflags/flags.go
DefaultOptionsV1 and the migration documentationsrc/encoding/json/v2_options.go
The bridge between v1 and v2 error typessrc/encoding/json/v2_inject.go
The format tag implementation and its enabling switchsrc/encoding/json/v2/arshal_time.go, src/encoding/json/internal/jsonopts/options_format.go
The Hyrum-proofing of error wordingsrc/encoding/json/v2/errors.go
The optimized path for decoding into anysrc/encoding/json/v2/arshal_default.go
The GOEXPERIMENT default valuessrc/internal/buildcfg/exp.go

The benchmark results in this book were taken on go1.27 darwin/arm64 (Apple M5 Pro). Benchmark numbers depend heavily on the environment and the shape of the data, so re-measure with your own data before using them for decisions. The quoted source code is from Go 1.27.0. Option names and flag layouts may change in future releases.