golang实现sql结果集以json格式输出的方法
程序员文章站
2022-03-20 22:22:24
本文实例讲述了golang实现sql结果集以json格式输出的方法。分享给大家供大家参考,具体如下:
复制代码 代码如下:func getjson(sqlstring s...
本文实例讲述了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
}
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代码检验、检验、美化、格式化工具:
json在线格式化工具:
在线xml/json互相转换工具:
json代码在线格式化/美化/压缩/编辑/转换工具:
在线json压缩/转义工具:
c语言风格/html/css/json代码格式化美化工具:
希望本文所述对大家go语言程序设计有所帮助。