Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zrzucanie tabel MySQL do JSON za pomocą Golang

Musiałem też zrzucić tabele bazy danych do json i oto jak osiągnąłem:(inna niż inna odpowiedź w tym temacie, wszystko nie jest ciągiem, dzięki tej odpowiedzi:https://stackoverflow.com/a/17885636/4124416 , mogłem poprawnie uzyskać pola liczb całkowitych)

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 
}

Oto przykładowe wyjście:

[{"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. Jak wybrać każdy n-ty wiersz w mySQL, zaczynając od n

  2. Pobierz bieżący rok, bieżący miesiąc i bieżący dzień w MySQL

  3. Problem z buforem MySqlDataReader GetBytes...

  4. Nie można przekonwertować obiektu klasy DateTime na ciąg

  5. Umieszczenie Railsów nad istniejącą bazą danych