Go 1.27 перевёл encoding/json на движок v2 с новыми правилами
В Go 1.27 старый пакет encoding/json теперь работает поверх нового движка encoding/json/v2, поэтому поведение частично изменилось даже без смены импорта. nil-срезы стали [], имена полей сопоставляются с учётом регистра, дубли ключей и неверный UTF-8 вызывают ошибки, а time.Duration больше не маршалится по умолчанию.
- encoding/json в Go 1.27 работает на движке v2, v1 API сохранён
- nil-срез теперь [] вместо null, дубли ключей отклоняются
- time.Duration не маршалится без FormatDurationAsNano(true)
- Откат через GOEXPERIMENT=nojsonv2 обещают убрать в будущем релизе
Читать дальше
Софт