Go开发者必读:JSON 的跨语言陷阱与 Go 防御指南

本文永久链接 – https://tonybai.com/2025/10/09/json-isnt-json 大家好,我是Tony Bai。 JSON (JavaScript Object Notation),以其简洁、轻量、人类可读的特性,早已成为 Web API 和系统集成的“通用语”。它的承诺是:“一次编写,随处解析”。然而,这份看似美好的承诺背后,隐藏着一个被许多开发者忽略的残酷现实:JSON 并不像其规范所暗示的那样通用。 ...

October 9, 2025 · 15 min · Tony Bai

Go 解析器的“隐秘角落”:encoding/json 的安全陷阱与 JSONv2 的救赎

本文永久链接 – https://tonybai.com/2025/06/22/unexpected-security-footguns-in-go-parsers 大家好,我是Tony Bai。 在 Go 语言中,标准库的 encoding/json 包无疑是我们日常打交道最多的伙伴之一。它简洁易用,性能尚可,支撑了无数 Go 应用的数据交换需求。然而,正如俗话所说,“最熟悉的地方可能藏着最深的坑”,最近拜读了知名安全公司 Trail of Bits 的一篇深度剖析文章——“Unexpected security footguns in Go’s parsers”(Go 解析器中意想不到的安全“绊脚石”)——让我对这个朝夕相处的伙伴有了全新的、甚至可以说是“惊出一身冷汗”的认识。 ...

June 22, 2025 · 11 min · Tony Bai

API设计的“Go境界”:Go团队设计MCP SDK过程中的取舍与思考

本文永久链接 – https://tonybai.com/2025/05/23/go-api-design-mcp-sdk 大家好,我是 Tony Bai。 作为开发者,我们每天都在与 API 打交道——调用它们,设计它们,有时也会为糟糕的 API 设计而头痛不已。一个优秀的 API,如同一位技艺精湛的向导,能清晰、高效地引领我们通往复杂功能的彼岸;而一个蹩脚的 API,则可能像一座布满陷阱的迷宫,让我们步履维艰。 ...

May 23, 2025 · 14 min · Tony Bai

手把手带你玩转GOEXPERIMENT=jsonv2:Go下一代JSON库初探

本文永久链接 – https://tonybai.com/2025/05/15/go-json-v2 大家好,我是Tony Bai。 Go 语言标准库中的 encoding/json 包,无疑是我们日常开发中使用频率最高的包之一。它为 Go 社区服务了十多年,几乎无处不在。但与此同时,它也因一些历史遗留的 API 缺陷、行为不一致以及在某些场景下的性能瓶颈而受到过不少讨论和批评。社区中甚至涌现出像Sonic、go-json、easyjson 等一系列高性能的第三方 JSON 库作为替代。 ...

May 15, 2025 · 14 min · Tony Bai