你可以使用 Golang 中的数据库查询结果映射到结构体,然后将结构体转换为 JSON 格式进行展示。下面是一个示例代码:

package main

import (
	"database/sql"
	"encoding/json"
	"fmt"
	"log"
)

type Result struct {
	Name  string `json:'name' `
	Count int    `json:'count' `
}

func main() {
	// 假设有一个数据库连接 db 和一个查询语句 query
	// db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database")
	// query := "SELECT name, COUNT(*) as count FROM table_name GROUP BY name"

	// 执行查询
	rows, err := db.Query(query)
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()

	// 创建一个切片用来保存查询结果
	results := []Result{}

	// 遍历查询结果
	for rows.Next() {
		// 创建一个用来接收每一行结果的结构体
		result := Result{}

		// 将查询结果映射到结构体
		err := rows.Scan(&result.Name, &result.Count)
		if err != nil {
			log.Fatal(err)
		}

		// 将每个结果添加到切片中
		results = append(results, result)
	}

	// 将结果转换为 JSON 格式
	jsonData, err := json.Marshal(results)
	if err != nil {
		log.Fatal(err)
	}

	// 打印 JSON 数据
	fmt.Println(string(jsonData))
}

在上面的示例代码中,我们首先定义了一个 Result 结构体,用来存储查询结果。然后执行查询语句,将每一行结果映射到 Result 结构体,并将每个结果添加到切片中。最后,使用 json.Marshal 函数将结果转换为 JSON 格式,并打印出来。

请注意,示例中的 dbquery 变量需要根据你的实际情况进行设置。同时,你需要根据你的数据库驱动和数据库类型导入相应的包,并进行相应的连接和查询操作。


原文地址: https://www.cveoy.top/t/topic/pkoT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录