首页 >后端开发 >Golang >如何使用 Go 的 `encoding/json` 解组键名称中带有空格的 JSON?

如何使用 Go 的 `encoding/json` 解组键名称中带有空格的 JSON?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-25 07:57:10516浏览

How Can I Unmarshal JSON with Spaces in Key Names Using Go's `encoding/json`?

带有空格的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn