【问题标题】:How do I define part of a Go struct as a string of JSON?如何将 Go 结构的一部分定义为 JSON 字符串?
【发布时间】:2020-05-23 02:40:32
【问题描述】:

我有一个 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"}

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

【问题讨论】:

    标签: arrays json go struct unmarshalling


    【解决方案1】:

    你可以使用json.RawMessage:

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

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

    【讨论】:

    • 完美!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多