我使用sqlx查询数据库数据,链表查询结果如下:
我想通过内嵌切片结构体获取查询数据 并返如下json格式
type User struct { ID int `db:"id"` Class string `db:"class"` Profiles []Profile } type Profile struct { UID int `db:"uid"` Cid int `db:"cid"` Name string `db:"name"` Age int `db:"age"` }
func main() { db := sqlx.MustOpen("mysql", "用户名:123456@tcp(127.0.0.1:3306)/xorm") defer db.Close() stmt, err := db.Query("SELECT * FROM class left join users on id=cid WHERE id=?", 1) if err != nil { fmt.Println(err) } var user User var profile Profile for stmt.Next() { err := stmt.Scan(&user.ID, &user.Class, &profile.UID, &profile.Name, &profile.Age, &profile.Cid) if err != nil { panic(err.Error()) } user.Profiles = append(user.Profiles, profile) }
b, _ := json.Marshal(&user) fmt.Println(string(b)) }
有其他解决办法也请告诉我,这是我目前想到最好的解决方案了