type A struct {
Id int64
ContactInfo sql.NullString `sql:"type:json"`
}
鉴于此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。
答案 0 :(得分:7)
要使用嵌入式JSON解析JSON,您需要使用json.RawMessage
类型的字段(以及第二个struct
)。
查看this example了解基本用法。然后,您将可以访问原始字段内容,以便在与数据库相关的结构中使用。