【发布时间】:2021-05-11 00:54:30
【问题描述】:
我正在使用一个应用程序 API,它以不同的方式处理 JSON 中缺少的键和 null 值。它可能会像{"value":null} 或{} 一样交还JSON - 如果密钥存在,它们的含义会有所不同。我的问题是我需要将数据解组为struct,然后将其编组回 JSON,保留这种细微差别。
如果我定义这样的结构:
type Test struct {
Value *string `json:"value,omitempty"`
}
然后{"value":null} 被编组为 JSON 为 {}。
如果我定义这样的结构:
type Test struct {
Value *string `json:"value"`
}
然后{} 被编组为 JSON 为 {"value":null}。
有没有办法处理从 JSON 读取的空键和缺失键,并保留缺失键与空值之间的差异?
【问题讨论】:
-
编组为地图或 json.RawMessage 或自己的 json.Unmarshaler 实现。越来越复杂。