]> Cypherpunks repositories - gostls13.git/commit
encoding/json/v2: remove `unknown` tag option and DiscardUnknownMembers master
authorJoe Tsai <joetsai@digital-static.net>
Tue, 3 Feb 2026 01:52:37 +0000 (17:52 -0800)
committerJoseph Tsai <joetsai@digital-static.net>
Fri, 13 Feb 2026 00:09:06 +0000 (16:09 -0800)
commitc9cbeb0a1b08a9830a3d2d4abe0c2108e52f7647
treef52aba650a85b15a0a009df469e37c4c4ad76b13
parent92c7fcf137848ad74f88f75fc21bcb159eb08104
encoding/json/v2: remove `unknown` tag option and DiscardUnknownMembers

WARNING: This commit contains breaking changes
for those already using GOEXPERIMENT=jsonv2.

This removes support for the `unknown` tag option and
the DiscardUnknownMembers marshal option.

The `unknown` tag option semantics are a bit too subtle
even for experienced Go programmers to understand.
Remove support for it. The exact same feature (or something similar)
can be added back into a future release of json/v2.

We already support the `inline` tag option,
which can handle most cases of what someone might want to do
with unknown fields (such as preserve them).

Fixes #77271
Updates #76444

Change-Id: I875952f0755e58aac4c571869b2cdb56e75cfda9
Reviewed-on: https://go-review.googlesource.com/c/go/+/741320
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
src/encoding/json/internal/jsonflags/flags.go
src/encoding/json/v2/arshal_default.go
src/encoding/json/v2/arshal_test.go
src/encoding/json/v2/doc.go
src/encoding/json/v2/example_test.go
src/encoding/json/v2/fields.go
src/encoding/json/v2/fields_test.go
src/encoding/json/v2/options.go