将json解组为postgres的数据库json字段

sat*_*sat 4 go

type A struct {
   Id int64
   ContactInfo sql.NullString `sql:"type:json"`
}
Run Code Online (Sandbox Code Playgroud)

鉴于此json - {"Id":1,"ContactInfo":{"email1":"xx@yy.com","phone1":"2223334444"}},我们如何将json解组为struct A. ContactInfo只是postgres中的一个简单的json数据类型.我环顾四周,但似乎找不到任何简单的方法.没有任何特殊处理,我只是得到一个错误,如果我json.Unmarshal(错误读取 - json:不能将对象解组为Go类型字符串的值).

我们希望将ContactInfo保持不变为字符串,以便我们可以直接将其发送到postgres,postgres将验证它是否是有效的json.但是,Id应该是unmarshaled并分配为struct value.

Mic*_*zon 7

要使用嵌入式JSON解析JSON,您需要使用类型字段json.RawMessage(和第二个struct).

查看此示例以了解基本用法.然后,您将可以访问原始字段内容,以便在数据库相关结构中使用.