带有空格的 JSON 键名称:解组成为可能
使用包含空格的复杂键反序列化 JSON 数据通常会在解组过程中带来挑战。让我们研究一下在 Go 中使用编码/json 库的具体示例。
问题:
考虑以下 JSON 模式:
[ {"Na me": "Platypus", "Order": "Monotremata"}, {"Na me": "Quoll", "Order": "Dasyuromorphia"} ]
使用标准编码/json 库将此数据解组到以下 Go 中结构:
type Animal struct { Name string `json:"Na me"` Order string `json:"Order,omitempty"` }
由于 JSON 键中的空格而导致“名称”字段为空。
原因:
空格JSON 键中的内容会混淆解组过程。库尝试将键“Na me”与 Animal 结构中的字段相匹配,但没有相应的字段。
解决方案:
解决此问题,确保 json 标签中的 struct field 标签指定正确的键名称,包括空格:
type Animal struct { Name string `json:"Na me"` Order string `json:"Order,omitempty"` }
使用此修改后的标签,解组过程可以成功地将 JSON 键映射到正确的结构字段,从而产生预期的输出:
[ {Name:Platypus Order:Monotremata} {Name:Quoll Order:Dasyuromorphia} ]
以上是如何使用 Go 的 `encoding/json` 解组键名称中带有空格的 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!