首页 > 后端开发 > Golang > 如何在 Go 中解组期间处理动态 JSON 键?

如何在 Go 中解组期间处理动态 JSON 键?

Susan Sarandon
发布: 2024-12-07 13:02:13
原创
732 人浏览过

How to Handle Dynamic JSON Keys During Unmarshaling in Go?

JSON 解组中的动态键处理:GoLang

在 GoLang 中,当 JSON 中的键时,将 JSON 数据解组到结构中可能会变得具有挑战性是动态的或者不能直接映射到结构中的特定字段。本文通过介绍使用映射来捕获动态键及其关联值来解决此问题。

问题描述:

考虑以下结构:

type X struct {
 A string `json:"a_known_string"`
 B string `json:"b_known_string"`
}
登录后复制

和一个 JSON 字符串:

"{
 "any string" : {
   "a_known_string" : "some value",
   "b_known_string" : "another value" 
 }
}"
登录后复制

使用具有结构的标准 JSON Unmarshal 函数不会捕获动态键“任何字符串”。

使用映射的解决方案:

要解决此问题,我们可以使用映射来存储动态键值对。这是一个示例:

var m map[string]X
err := json.Unmarshal([]byte(jsnStr), &m)
登录后复制

在此解决方案中,m 变量将是一个映射,其中键是动态字符串,值是 X 结构的实例。

这种方法允许我们捕获动态键及其相应的值,同时仍然保持数据的结构化表示。

Playground示例:

提供的 Playground 示例演示了解决方案的用法:

https://go.dev/play/p/tZ27zKhI9Ct

以上是如何在 Go 中解组期间处理动态 JSON 键?的详细内容。更多信息请关注PHP中文网其他相关文章!

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