登录
首页 >  Golang >  Go问答

将 Go 结构定义为 JSON 字符串的步骤

来源:stackoverflow

时间:2024-03-06 09:30:24 355浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《将 Go 结构定义为 JSON 字符串的步骤》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我有一个 json api,我试图通过一个简单的 go 应用程序使用它,并返回一个 json 字符串数组,该数组将被插入到数据库中以供以后使用。 json 模型如下所示:

{
    "sites": {
        "count": 123,
        "site": [
            {
                "id": 111,
                "name": "abc"
            },
            {
                "id": 222,
                "name": "def"
            },
            {
                "id": 333,
                "name": "ghi"
            }
        ]
    }
}

所需的结果是一个如下所示的数组:

{"id": 111, "name": "abc"}
{"id": 222, "name": "def"}
{"id": 333, "name": "ghi"}

我似乎无法弄清楚如何定义一个在结构定义中的某个点停止解组的结构。有没有办法将 [] 结构体的内容转储到结构体数组中每个元素的字符串中,而不是定义子结构体的内容?


解决方案


您可以使用json.rawmessage

type Sites struct {
   Count int `json:"count"`
   SiteArr []json.RawMessage `json:"site"`
}

当您将数据解组到上述结构中时,sitearr 的每个元素将包含每个元素的原始 json 消息,您可以使用 string(sites.sitearr[i]) 从中获取字符串值

本篇关于《将 Go 结构定义为 JSON 字符串的步骤》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>