gpt4 book ai didi

json - 如何将 postgresql json 类型转换为 golang native?

转载 作者:IT王子 更新时间:2023-10-29 02:01:03 25 4
gpt4 key购买 nike

我正在尝试将 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 感到 panic 。

谁能给我指明方向并告诉我哪里做错了?

最佳答案

通过实现 sql.Scanner MY_JSON 上的接口(interface),您的代码应该按原样工作。为此,您只需在 MY_JSON 类型(带有指针接收器)上添加 Scan 方法。

func (m *MY_JSON) Scan(src interface{}) error {
bs, ok := src.([]byte)
if !ok {
return errors.New("not a []byte")
}
return json.Unmarshal(bs, m)
}

关于json - 如何将 postgresql json 类型转换为 golang native?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54161698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com