Go 1.26 发布在即,为何 json/v2 依然“难产”?七大技术路障全解析

💡 原文中文,约5700字,阅读约需14分钟。
📝

内容提要

Go 1.26预计于2026年2月发布,JSON库encoding/json/v2仍在实验阶段,因API设计、浮点数精度和错误处理等七个技术问题导致延迟。Go团队正致力于解决这些问题,以确保未来的稳定性和性能。

🎯

关键要点

  • Go 1.26预计于2026年2月发布,JSON库encoding/json/v2仍在实验阶段。
  • v2的延迟源于七个技术问题,包括API设计、浮点数精度和错误处理等。
  • jsontext.Internal类型的导出违反了Go标准库的设计原则。
  • Unmarshaler遇到指针时可能导致栈溢出的问题。
  • 浮点数精度处理不一致,导致用户期望与技术现实之间的矛盾。
  • 选项系统的设计导致用户在使用时遇到配置穿透的问题。
  • unknown标签的存废提案因功能重叠和API极简主义而被提出。
  • SkipFunc的使用限制导致用户在条件性跳过时需要使用丑陋的hack代码。
  • 新接口的最佳实践缺乏明确文档指导,用户可能绕过重要选项。
  • Go团队计划在2026年8月发布Go 1.27,移除实验标签,正式可用的encoding/json/v2。
  • 建议开发者在现有的encoding/json (v1)上继续使用,关注jsontext包的独立性。
  • 参与反馈是影响Go未来JSON处理方式的机会,Go团队的慢是对生态的尊重。
➡️

继续阅读