首页 > 后端开发 > Golang > 如何将 JSON 数据部分解组到 Go Map 中?

如何将 JSON 数据部分解组到 Go Map 中?

Mary-Kate Olsen
发布: 2024-12-22 15:51:11
原创
548 人浏览过

How to Partially Unmarshal JSON Data into a Go Map?

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

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