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

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

Mary-Kate Olsen
发布: 2024-12-26 04:28:09
原创
293 人浏览过

How Can I Partially Unmarshal JSON into a Go Map?

在 Go 中将 JSON 部分解组为 Map

在 Go 中,当数据使用 key 包装在对象中时,可以将 JSON 数据部分解组为 Map -值对。这样可以轻松识别每个键所保存的值的类型。

实现

要实现此目的,请使用encoding/json 包并将其解组为map[string]json.RawMessage。 json.RawMessage 类型在进一步解析之前捕获底层 JSON 数据。

var objmap map[string]json.RawMessage
err := json.Unmarshal(data, &objmap)
登录后复制

进一步解析

一旦获得映射,您就可以根据其值继续解析每个键的值已知类型。

对于示例 JSON:

{
    "sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
    "say":"Hello"
}
登录后复制

您可以解析sendMsg 并如下所示:

type sendMsg struct {
    User string
    Msg  string
}

var s sendMsg
err = json.Unmarshal(objmap["sendMsg"], &s)

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

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