]> Cypherpunks repositories - gostls13.git/commit
encoding/json/v2: use slices.Sort directly
authorJoe Tsai <joetsai@digital-static.net>
Tue, 21 Oct 2025 17:39:15 +0000 (10:39 -0700)
committerGopher Robot <gobot@golang.org>
Fri, 24 Oct 2025 16:05:36 +0000 (09:05 -0700)
commita6a59f0762787fd50c7069b77b0addbc2339c8d2
treef4ee63b23e69ac795af9a524fbb267418c92d2c9
parent0d3dab9b1d3b22ecac956c79a1b42a7d3f587c06
encoding/json/v2: use slices.Sort directly

This is semantically identical and just a cleanup.

Prior to #63397, JSON object names were sorted according to UTF-16
to match the semantic of RFC 8785, but there were a number of
objections in the discussion to using that as the sorting order.

In https://github.com/go-json-experiment/json/pull/121,
we switched to sorting by UTF-8, which matches the behavior
of v1 and avoids an option to toggle the behavior.
However, we should have deleted the stringSlice.Sort method
and just directly called slices.Sort.

From a principled perspective, both UTF-16 and UTF-8 are
reasonable ways to sort JSON object names.
RFC 8259 specifies that the entire JSON text is encoded as UTF-8.
However, the way JSON strings are encoded requires escaping
Unicode codepoints according to UTF-16 surragate halves
(a quirk of JavaScript inherited by JSON).
Thus, JSON is inconsistently both UTF-8 and UTF-16.

Change-Id: Id92b5cc20efe4201827e9d3fccf24ccf894d3e60
Reviewed-on: https://go-review.googlesource.com/c/go/+/713522
Reviewed-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Bypass: Damien Neil <dneil@google.com>
Auto-Submit: Damien Neil <dneil@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Damien Neil <dneil@google.com>
src/encoding/json/v2/arshal.go
src/encoding/json/v2/arshal_any.go
src/encoding/json/v2/arshal_default.go
src/encoding/json/v2/arshal_inlined.go