如何在 Go 中将 JSON 部分解组到映射中
在 Go 中解组 JSON 数据可能很简单,但在处理嵌套时会出现挑战其键指示数据类型的对象。为了解决这个问题,您可以利用“encoding/json”包。
在提供的代码中,您尝试将 JSON 数据映射到 map[string][]byte,从而有效地将其转换为密钥- 字符串和原始 JSON 的值对。但是,json.MapObject 函数不存在,使得该解决方案不可行。
相反,您可以利用 map[string]json.RawMessage 来实现您的目标。 RawMessage 是一种不透明类型,保存未解析的 JSON。使用这种方法,下面的代码将提供的 JSON 数据解组到 objmap 变量中:
var objmap map[string]json.RawMessage err := json.Unmarshal(data, &objmap)
现在,您可以访问 objmap 中的各个键值对以进一步解析 JSON 数据。例如,要解析“sendMsg”值:
var s sendMsg err = json.Unmarshal(objmap["sendMsg"], &s)
同样,您可以将“say”值解析为字符串:
var str string err = json.Unmarshal(objmap["say"], &str)
注意: 请记住导出 sendMsg 结构中的变量以启用正确的解组。例如:
type sendMsg struct { User string Msg string }
您可以在 https://play.golang.org/p/OrIjvqIsi4-.
找到一个工作示例。以上是如何将 JSON 数据部分解组到 Go Map 中?的详细内容。更多信息请关注PHP中文网其他相关文章!