有没有支持PostgreSQL版本9.4的Go语言的PostgreSQL库?JSON9.4支持PostgreSQL数据类型,想知道它是否可以与Go语言一起使用?
谢谢。
发布于 2015-04-15 02:07:53
是的,go pq library应该支持JSONv9.4,并且它基本支持PostgreSQL类型作为字符串(看起来像是added in v9.2)。
// CREATE TABLE foo (id SERIAL PRIMARY KEY, stuff json);
// INSERT INTO foo (stuff) VALUES ('{"x":123}');
type Foo struct {
Id int,
Stuff string,
}
rows, err := db.Query("SELECT * FROM foo LIMIT 1") // TODO: handle error
defer rows.Close()
for rows.Next() {
foo := Foo{}
err = rows.Scan(&foo.Id, &foo.Stuff) // TODO: handle error
# main.Foo{Id:1, Stuff:"{\"x\":123}"}
}您可以对JSON字符串进行后处理,也可以使用自定义的"Scan“方法创建自定义类型:
type Foo struct {
Id int,
Stuff MyStuff,
}
func (e *MyStuff) Scan(value interface{}) error {
// Value should be a []byte of the JSON string.
// Do whatever you want with it here...
}发布于 2015-04-15 01:54:55
我使用jmoiron/sqlx。对于任何不常见的数据类型,您可以实现valuer和scanner接口。我已经使用这个包为Postgis的地理点做了这件事。
https://stackoverflow.com/questions/29634071
复制相似问题