如果您使用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/

10-12 01:08
查看更多