我对golang很陌生,我试图将数据库查询结果映射到嵌套的struct中,但是我得到了错误,无法找到最佳的方法。该程序按类别列出JSON - book details组。
结构如下所示:
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)
}发布于 2016-10-13 04:26:34
第一位问了关于SO's go标签的问题。
结构成员必须出口,也就是以大写字母开头。
type book struct{
Category string `json:"category"`
Books []*BookDetails `json:"books"`
}
type BookDetails struct{
Name string `json:"name"`
ID uint `json:"id"`
Publisher string `json:"publisher"`
}https://stackoverflow.com/questions/40008652
复制相似问题