Cambios críticos en la migración a encoding/json/v2 en Go 1.27

Fuentes: Critical changes in migrating to encoding/json/v2 in Go 1.27

La versión 1.27 de Go introduce encoding/json/v2 en la biblioteca estándar, lo que obliga a los desarrolladores a evaluar cambios significativos en el manejo de datos estructurados. Aunque el paquete v1 sigue soportado mediante compatibilidad, la migración a v2 altera el comportamiento por defecto en áreas como la serialización de cadenas de tiempo, el manejo de claves duplicadas y la codificación de campos vacíos. Por ejemplo, v2 rechaza claves duplicadas y no serializa time.Duration sin configuración explícita, mientras que v1 permitía esto. Además, la codificación de cadenas vacías cambia de null a [] para listas, lo que puede romper clientes JavaScript que esperan null. La documentación técnica detalla que estos cambios son controlables mediante opciones específicas, como json.FormatNilSliceAsNull o json.MatchCaseInsensitiveNames, pero requieren una revisión exhaustiva de los tests existentes. Los expertos recomiendan verificar las cadenas de errores fijas y actualizar las etiquetas de JSON para mantener la compatibilidad, ya que la nueva API ofrece mayor seguridad y consistencia semántica, aunque exige una adaptación cuidadosa del código legado.