我是Golang的新手,并尝试将数据库查询结果映射到我的嵌套结构,但我收到错误而无法找到最佳方法。该程序假设出JSON - 按类别分列书籍详细信息。
结构如下
type book struct{
category string
books []*bookDetails
}
type bookDetails struct{
name string
id uint
publisher string.
}
预期的JSON输出
[
{
"category" : "Ficton",
"books" : [
{name:'aaa',id:12,publisher:'one'},
{name:'bbb',id:13,publisher:'two'}
]
},
{
"category" : "suspense",
"books" : [
{name:'ccc',id:14,publisher:'three'},
{name:'ddd',id:15,publisher:'four'}
]
}
]
我不是在这里编写SQL查询,但请假设类似的数据库模式。以下代码中的 dbRow 是select查询的输出。以下代码工作正常,但我将所有书籍都放在一个数组中,而且我无法弄清楚如何按类别划分。
detailsMap := make(map[uint][]*details)
for dbRow.Next() {
var det details
detErr := dbRow.StructScan(&det)
detailsMap[det.id] = append(detailsMap[det.id], &det)
}
答案 0 :(得分:0)
关于SO go go标签的#1问题。
必须导出Struct成员,即以大写字母开头。
Zookeeper