Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển các bảng MySQL sang JSON với Golang

Tôi cũng cần kết xuất các bảng cơ sở dữ liệu sang json và đây là cách tôi đã đạt được:(khác với một câu trả lời khác trong chủ đề này, mọi thứ không phải là chuỗi, nhờ câu trả lời này:https://stackoverflow.com/a/17885636/4124416 , Tôi có thể lấy các trường số nguyên một cách chính xác)

func getJSON(sqlString string) (string, error) {
    rows, err := db.Query(sqlString)
    if err != nil {
        return "", 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 
}

Đây là kết quả mẫu:

[{"ID":0,"Text":"Zero"},{"ID":1,"Text":"One"},{"ID":2,"Text":"Two"}]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql localhost! =127.0.0.1?

  2. Hai thiết bị khác nhau có thể có cùng ID đăng ký GCM không?

  3. Tương đương với lệnh spool trong MySQL là gì?

  4. Lỗi MySQL:Sử dụng không chính xác UPDATE và LIMIT

  5. Cần truy vấn sự kết hợp riêng biệt của hai trường, cùng với một số lượng mà sự kết hợp riêng biệt xảy ra