首页 > 解决方案 > 动态 json 的 Golang 结构,返回空值

问题描述

我尝试从数据库“蟑螂”获取动态 json 数据,但在 golang 上执行时得到空值,

数据库中的内容数据类型是 JSONB,这里是我的 golang 结构

注意:这里的 Content 值是动态 Json(每个内容都有不同的 json 值)。

如果您对此有任何想法,请告诉我,谢谢。

type Result struct {
    Topic       string
    MessageType string
    Sender      string
    Content     interface{}
}
type SubscriberResponse struct {
    Result []*Result
}

这里是我的golang 服务

var results []*Result
var subscriberResponse *SubscriberResponse

sql := (`SELECT topic, message_type, sender, content FROM users`)
rs, err := s.db.QueryContext(ctx, sql)
if err == nil {
    for rs.Next() {
        result := &Result{}
        rs.Scan(
            &result.Topic,
            &result.MessageType,
            &result.Sender,
            &result.Content)
        results = append(results, result)
    }
    subscriberResponse = &SubscriberResponse{
        Result: results,
    }
    return subscriberResponse, nil
}
return nil, err

这里是golang服务的结果

{
"Result": [
    {
        "Topic": "a2",
        "MessageType": "b2",
        "Sender": "c2",
        "Content": null
    },
    {
        "Topic": "a3",
        "MessageType": "b3",
        "Sender": "c3",
        "Content": null
    }]
}

在对数据库数据库结果执行该查询时,这里有附加信息结果

欢迎任何想法或修改。

标签: jsongocockroachdb

解决方案


推荐阅读