gpt4 book ai didi

mysql - 迭代 MySQL 记录并在 GoLang 中创建一个 JSON

转载 作者:IT王子 更新时间:2023-10-29 01:51:07 26 4
gpt4 key购买 nike

我正在尝试从我的 Go 应用程序中读取 MySQL 数据库中的数据。

var queryStr string = "SELECT * FROM Customers"
rows, err := db.Query(queryStr)

defer rows.Close()
for rows.Next() {
// do stuffs
}

查询没问题,而且有效;现在我想轻松地将 MySQL 查询的每条记录映射到我之前定义的 Customer 对象,如下所示:

type Customer struct {
id IntegerType `json:"id"`
name string `json:"name"`
surname string `json:"surname"`
}

我该怎么做?

第二个问题:一旦我得到一个 Customer 对象数组,我如何才能轻松地将它放入一个名为“data”的特定键下的新 JSON 对象中?

感谢您的支持:)

最佳答案

Export字段,以便它们可以在 JSON 上使用:

type Customer struct {
ID int `json:"id"`
Name string `json:"name"`
Surname string `json:"surname"`
}

声明要编码为 JSON 的值:

var v struct {
Data []Customer `json:"data"`
}

查询特定字段:

var queryStr string = "SELECT id, name, surname FROM Customers"
rows, err := db.Query(queryStr)

遍历添加值的行。

defer rows.Close()
for rows.Next() {
// Scan one customer record
var c Customer
if err := rows.Scan(&c.ID, &c.Name, &c.Surnmae); err != nil {
// handle error
}
v.Data = append(v.Data, c)
}
if rows.Err() != nil {
// handle error
}

将值编码为 JSON

p, err := json.Marshal(v)
if err != nil {
// handle error
}

p 是一个包含 JSON 的 []byte。

关于mysql - 迭代 MySQL 记录并在 GoLang 中创建一个 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37907401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com