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

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

Mary-Kate Olsen
发布: 2024-12-25 07:57:10
原创
516 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板