欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang實現(xiàn)sql結果集以json格式輸出的方法

 更新時間:2017年03月21日 08:46:47   作者:newjueqi  
這篇文章主要介紹了golang實現(xiàn)sql結果集以json格式輸出的方法,涉及Go語言針對sql結果集的遍歷、轉換及json格式相關操作技巧,需要的朋友可以參考下

本文實例講述了golang實現(xiàn)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
}

PS:關于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

在線XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat

在線json壓縮/轉義工具:
http://tools.jb51.net/code/json_yasuo_trans

C語言風格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

希望本文所述對大家Go語言程序設計有所幫助。

相關文章

  • Golang學習筆記(一):簡介

    Golang學習筆記(一):簡介

    這篇文章主要介紹了Golang學習筆記(一):簡介,本文講解了Go語言最主要的特性、安裝、環(huán)境變量設置、整體目錄結構、Helloworld、go命令、調試、編輯器設置等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • 基于Go語言實現(xiàn)分金幣游戲

    基于Go語言實現(xiàn)分金幣游戲

    這篇文章主要為大家詳細介紹了如何利用Go語言實現(xiàn)分金幣游戲,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Go語言學習筆記之文件讀寫操作詳解

    Go語言學習筆記之文件讀寫操作詳解

    這篇文章主要為大家詳細介紹了Go語言對文件進行讀寫操作的方法,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助,需要的可以參考一下
    2022-05-05
  • Golang channle管道的基本使用及快速入門

    Golang channle管道的基本使用及快速入門

    管道是Go語言中實現(xiàn)并發(fā)的一種方式,它可以在多個goroutine之間進行通信和數(shù)據(jù)交換,本文主要介紹了Golang channle管道的基本使用及快速入門,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Golang 定時器(Timer 和 Ticker),這篇文章就夠了

    Golang 定時器(Timer 和 Ticker),這篇文章就夠了

    這篇文章主要介紹了Golang 定時器(Timer 和 Ticker),這篇文章就夠了,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • go語言中的map如何解決散列性能下降

    go語言中的map如何解決散列性能下降

    近期對go語言的map進行深入了解和探究,其中關于map解決大量沖突的擴容操作設計的十分巧妙,所以筆者特地整理了這篇文章來探討一下go語言中map如何解決散列性能下降,文中有相關的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • go語言調用c語言的so動態(tài)庫的實現(xiàn)

    go語言調用c語言的so動態(tài)庫的實現(xiàn)

    在Go語言開發(fā)過程中,有時需要調用C或C++編寫的so動態(tài)庫,本文介紹了如何在Go語言中調用so庫的步驟和注意事項,包括環(huán)境準備、編譯生成.so文件、Go文件編寫、以及可能遇到的問題和解決方法,感興趣的可以了解一下
    2024-10-10
  • Go語言讀取,設置Cookie及設置cookie過期方法詳解

    Go語言讀取,設置Cookie及設置cookie過期方法詳解

    這篇文章主要介紹了Go語言讀取,設置Cookie及設置cookie過期方法詳解,需要的朋友可以參考下
    2022-04-04
  • Go 實現(xiàn)熱重啟的詳細介紹

    Go 實現(xiàn)熱重啟的詳細介紹

    這篇文章主要介紹了Go 實現(xiàn)熱重啟的詳細介紹,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Go語言工程實踐單元測試基準測試示例詳解

    Go語言工程實踐單元測試基準測試示例詳解

    這篇文章主要為大家介紹了Go語言工程實踐單元測試基準測試示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論