2 回答
TA贡献1810条经验 获得超5个赞
该查询返回包含 JSON 的单行和单列。使用此代码读取该单个值。
row, err := db.QueryRow("SELECT *FROM get_products()")
if err != nil {
// handle error
}
var jsonData []byte
if err := row.Scan(&jsonData); err != nil {
// handle error
}
c.Data(200, "application/json", jsonData)
无需对 JSON 进行解码和编码。按原样使用从数据库返回的 JSON 数据。
TA贡献1876条经验 获得超5个赞
我向您推荐这种静态查询的解决方案。
首先用于.Prepare创建准备好的语句。
db := gopg.Connect(&options)
pgStmt, err := pg.Prepare("SELECT *FROM get_products()")
if err != nil {
log.panic(err)
}
现在,您可以简单地得到结果
var jsonData []byte
_, err := pgStmt.QueryOne(gopg.Scan(&jsonData))
if err != nil {
log.panic(err)
}
c.Data(200, "application/json", jsonData)
您也可以将 json 作为字符串接收,然后将其转换为[]byte:
var json string
_, err := pgStmt.QueryOne(gopg.Scan(&json))
if err != nil {
log.panic(err)
}
// do something with that json
jsonData := []byte(json)
c.Data(200, "application/json", jsonData)
- 2 回答
- 0 关注
- 101 浏览
添加回答
举报