JSON
已收录文章:123篇
-
AI 应用接收流式工具参数时,JSON 往往被拆在多个数据块里,直接逐块解析会遇到意外 EOF、转义字符断开和重复提交。本文用 Go 写一个小型增量缓冲器,展示如何拼接、解析、去重并验证完整参数。497 收藏
-
Golang · Go教程 | 1个月前 | golang · JSON · 故障排查 · Go教程 · 接口设计 · JSON Go 接口兼容性 DisallowUnknownFields 严格解码接口增加 json.Decoder.DisallowUnknownFields 后,旧客户端多传字段会从静默兼容变成 400。本文用一个订单接口故障复盘这个变化,说明如何定位触发条件、保留严格校验的收益,并通过灰度和版本边界避免再次误伤旧请求。174 收藏
-
接口能返回 200,不代表客户端真的能用。本文用 Go 标准库 httptest.NewServer 从零写一个小型接口烟雾测试器,逐步检查状态码、Content-Type、JSON 字段和超时,并给出适合 CI 的验收边界。385 收藏
-
Golang · Go教程 | 1个月前 | JSON · 基准测试 · go · 性能优化 · 内存分配 encoding/json json.RawMessage json.Decoder Go JSONGo 服务处理大批量 JSON 时,直接把请求体解码成完整结构体并不总是划算。本文用订单事件示例比较 json.Unmarshal、json.Decoder 和 json.RawMessage 的分配与吞吐边界,并给出可复现的基准测试写法。206 收藏
-
Go 的 PATCH 接口如果直接把请求体解码到普通结构体,字段缺失和显式 null 很容易被合并。本文用指针与 json.RawMessage 设计可验证的更新参数,说明两种方案的取舍、错误处理和兼容边界。226 收藏
-
订单列表把渠道、会员等级放进 JSON 后,筛选条件容易变成逐行计算。本文用 MySQL 生成列和索引把 JSON 路径变成可核对的查询字段,同时处理缺失键、空字符串、类型转换和写入成本。351 收藏
-
即使接口启用了严格 JSON Schema,Go 服务仍要检查拒答、截断和字段值语义。本文用一个可运行的校验边界示例,拆开模型响应、json.Unmarshal 和业务校验各自该负责什么。195 收藏
-
Go 服务读取数百 MB 的 JSON 数组时,直接 json.Unmarshal 往往先把整份数据堆进内存。用 json.Decoder 按元素读取、限制批次大小并记录错误行,可把峰值堆从输入规模中拆出来;文中给出可运行示例和压测核对方法。310 收藏
-
Go 的传统 encoding/json 会把 nil slice 编码为 null,把已初始化的空切片编码为 []。先由接口契约决定返回形状,再在成功响应的边界归一化并用测试锁定,避免前端空列表处理出现分支。392 收藏
-
Go 1.26 让 new 可以直接接收初始值表达式。用一个 JSON 可选字段小项目演示如何把指针临时变量收进结构体字面量,并说明 go.mod 语言版本、旧工具链兼容和测试验收边界。300 收藏
-
Golang · Go问答 | 2个月前 | JSON · 接口设计 · Go问答 · encoding/json · encoding/json API响应 JSON序列化 time.Time omitempty Go问答 omitzeroGo 里 time.Time 是结构体零值,旧的 omitempty 不会按很多人期待的方式省略它。Go 1.24 起可用 omitzero;需要区分缺失和有值时,用 *time.Time 更清楚。315 收藏
-
Golang · Go问答 | 2个月前 | JSON · 后端开发 · Go问答 · encoding/json · JSON解析 encoding/json DisallowUnknownFields Go问答 RawMessage json.Decoder UseNumberGo 解析 JSON 不只看写法短不短。本文围绕字段稳定性、数据量、数字精度、未知字段和延迟解析,比较 struct、map、RawMessage 与 Decoder 的适用场景。151 收藏