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