2016-10-12 24 views
0

私はgolangに新しく、ネストされた構造体にデータベースクエリ結果をマップしようとしていますが、エラーが発生しており、それを実行する最善の方法を見つけられません。このプログラムは、カテゴリごとにJSON - bookの詳細をグループ化することを想定しています。golangネストされた構造体とマップ

構造体は

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クエリの出力です。次のコードは正常に動作していますが、すべての書籍を1つの配列に入れています。はどのようにグループ化できるのですか?

detailsMap := make(map[uint][]*details) 
for dbRow.Next() { 
    var det details 
    detErr := dbRow.StructScan(&det) 
    detailsMap[det.id] = append(detailsMap[det.id], &det) 
} 

答えて

0

SOのgoタグで#1の質問があります。

構造メンバーをエクスポートする必要があります。別名大文字で始まります。

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"` 
} 
関連する問題