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

时间:2014-05-21 19:34:08

标签: go

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。

1 个答案:

答案 0 :(得分:7)

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

查看this example了解基本用法。然后,您将可以访问原始字段内容,以便在与数据库相关的结构中使用。