golang实现sql结果集以json格式输出的方法

作者:newjueqi 时间:2024-04-27 15:33:05 

本文实例讲述了golang实现sql结果集以json格式输出的方法。分享给大家供大家参考,具体如下:

func getJSON(sqlString string) (string, error) {
    stmt, err := db.Prepare(sqlString)
    if err != nil {
        return nil, err
    }
    defer stmt.Close()
    rows, err := stmt.Query()
    if err != nil {
        return nil, err
    }
    defer rows.Close()
    columns, err := rows.Columns()
    if err != nil {
      return "", err
    }
    count := len(columns)
    tableData := make([]map[string]interface{}, 0)
    values := make([]interface{}, count)
    valuePtrs := make([]interface{}, count)
    for rows.Next() {
      for i := 0; i < count; i++ {
          valuePtrs[i] = &values[i]
      }
      rows.Scan(valuePtrs...)
      entry := make(map[string]interface{})
      for i, col := range columns {
          var v interface{}
          val := values[i]
          b, ok := val.([]byte)
          if ok {
              v = string(b)
          } else {
              v = val
          }
          entry[col] = v
      }
      tableData = append(tableData, entry)
    }
    jsonData, err := json.Marshal(tableData)
    if err != nil {
      return "", err
    }
    fmt.Println(string(jsonData))
    return string(jsonData), nil
}

希望本文所述对大家Go语言程序设计有所帮助。

标签:golang,sql,json
0
投稿

猜你喜欢

  • php中get_meta_tags()、CURL与user-agent用法分析

    2024-05-02 17:32:52
  • javascript十个最常用的自定义函数(中文版)

    2024-04-16 09:26:38
  • 浅谈MySQL中group_concat()函数的排序方法

    2024-01-22 09:21:12
  • 深入浅析python3中的unicode和bytes问题

    2022-11-29 02:41:47
  • django session完成状态保持的方法

    2021-12-07 16:12:02
  • golang 防缓存击穿singleflight的实现

    2024-05-09 09:55:23
  • 解析SQL Server与ASP互操作的时间处理

    2009-02-01 16:40:00
  • python实现定时同步本机与北京时间的方法

    2021-03-24 10:58:14
  • Python去掉字符串中空格的方法

    2021-12-09 14:23:07
  • Python编写屏幕截图程序方法

    2022-10-04 11:11:47
  • ACCESS中Field对象的标题属性

    2008-11-20 17:44:00
  • Java基于redis和mysql实现简单的秒杀(附demo)

    2024-01-16 16:55:13
  • 各种Python库安装包下载地址与安装过程详细介绍(Windows版)

    2021-01-27 14:00:05
  • django框架使用方法详解

    2021-07-07 18:12:00
  • MySQL字符串前缀索引使用

    2024-01-22 17:58:58
  • JS遮罩层效果 兼容ie firefox jQuery遮罩层

    2024-02-24 23:04:24
  • 网页设计的12种颜色

    2011-05-21 08:40:00
  • asp获取客户端的MAC地址

    2007-08-17 10:58:00
  • 深入解析Python中的WSGI接口

    2021-02-03 01:22:14
  • PHP 正则表达式常用函数使用小结

    2024-05-03 15:35:15
  • asp之家 网络编程 m.aspxhome.com