【发布时间】:2019-06-07 06:31:08
【问题描述】:
我正在尝试将 json 类型的 postgres 列转换为 golang json 对象。
type MY_JSON struct {
MY_ID string `json:"my_id"`
MY_INFO []MY_INNER_JSON `json:"my_info"`
}
type MY_INNER_JSON struct {
SOME_ID string `json:"some_id"`
SOME_NUM int64 `json:"some_num"`
SOME_OPTIONAL string `json:"some_optional,omitempty"`
}
rows, err := db.Query("SELECT my_json FROM my_json_table LIMIT 1;")
for rows.Next() {
var mycolumn MY_JSON
err = rows.Scan(&mycolumn)
fmt.Println(mycolumn)
}
这就是json的样子
{
"my_id": "this is my_id",
"my_info": [
{
"some_id": "some_id",
"some_num": 123
},
{
"some_id": "some_id",
"some_num": 123,
"some_optional": "sometimes more"
},
]
}
我在运行时受到 golang 的恐慌。
谁能给我指个方向,告诉我哪里做错了?
【问题讨论】:
-
让
MY_JSON类型使用json.Unmarshal 实现sql.Scanner 接口。 (确保在指针类型上实现扫描器) -
您最好将变量重命名为更符合 Go 语言习惯。看看Effective Go中的命名建议。
标签: json postgresql go