如果您使用row_to_json等将返回的行格式化为json文本,是否可以从pgx查询中获取字符串?
func handler(w http.ResponseWriter, r *http.Request) {
rows, err := DB.Query("select row_to_json(rows) as data from (select * from userinfo) rows;")
w.Header().Set("Content-Type", "application/json")
w.Write(rows)
}
最佳答案
好的,这就是我所做的。我最终使用QueryRow
而不是Query
,因为我只期望一个json结果。然后,我使用row.Scan()
将结果转换为字符串,然后使用w.Write([]byte(result))
将结果字符串写入响应。
如果结果中有多行,则可能需要不同地处理结果。 Possibly this might help?
func handler(w http.ResponseWriter, r *http.Request) {
var result string
err := postgresConn.QueryRow(`My SQL Query`).Scan(&result)
switch {
case err == sql.ErrNoRows:
log.Printf("No user with that ID.")
w.Header().Set("Content-Type", "application/json")
w.Write([]byte("{}"))
case err != nil:
log.Println(err)
w.WriteHeader(http.StatusInternalServerError)
default:
w.Header().Set("Content-Type", "application/json")
w.Write([]byte(result))
}
}
关于postgresql - 在golang的sql中使用row_to_json从我的pgx查询中获取字符串时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33909997/