我正在尝试从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对象中?
感谢您的支持:)
答案 0 :(得分:6)
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的[]字节。