0

我正在尝试构建一个看起来像这样的 map[string]map[string]string:

{ "notes": 
    {
    "Title":note.Title,
    "Body":note.Body,
    },
    {
    "Title":note.Title,
    "Body":note.Body,
    },
    {
    "Title":note.Title,
    "Body":note.Body,
    },
}

来自结构(注释)的结构(注释)

我想过这样做:

for _, note := range notes {
        thisNote := map[string]string{
            "Title":note.Title,
            "Body":note.Body,
        }

        content["notes"] = append(content["notes"], thisNote)
}

但显然这不起作用,因为我试图将地图附加到地图而不是切片。

我错过了一个非常简单的解决方案吗?

4

2 回答 2

2

感谢Running Wild的回答,它在评论中,但我想我会在这里为任何尝试做同样事情的人添加它。

问题是我需要做一个map[string][]map[string]string而不是map[string]map[string]string

于 2012-09-20T06:04:24.343 回答
1

我很确定你可以使用这样的结构,因为 mustache 接收数据作为interface{}

func handler(w http.ResponseWriter, r *http.Request) {
    var data struct {
        Notes []*Note
    }

    notes := ...
    data.Notes = notes
    tmpl := ...
    templ.Render(data, w)
}
于 2012-09-20T12:12:03.417 回答