gpt4 book ai didi

json - 使用模板将 json 输出到 http.ResponseWriter

转载 作者:IT王子 更新时间:2023-10-29 02:28:23 26 4
gpt4 key购买 nike

我有这个模板:

var ListTemplate = `
{
"resources": [
{{ StringsJoin . ", " }}
]
}
`

呈现:

JoinFunc := template.FuncMap{"StringsJoin": strings.Join}
tmpl := template.Must(template.New("").Funcs(JoinFunc).Parse(ListTemplate))

如果我将它发送到 http.ResponseWriter,输出文本将被转义。

var list []string
tmpl.Execute(w, list)

我怎么能这样写一个json呢?

最佳答案

您不应该使用 Go 的模板引擎(text/templatehtml/template )来生成 JSON 输出,因为模板引擎不知道 JSON 语法和规则(转义)。

改为使用 encoding/json用于生成 JSON 的包。您可以使用 json.Encoder将响应直接写入/流式传输到 io.Writer ,例如 http.ResponseWriter .

例子:

type Output struct {
Resources []string `json:"resources"`
}

obj := Output{
Resources: []string{"r1", "r2"},
}

enc := json.NewEncoder(w)

if err := enc.Encode(obj); err != nil {
// Handle error
fmt.Println(err)
}

输出(在 Go Playground 上尝试):

{"resources":["r1","r2"]}

关于json - 使用模板将 json 输出到 http.ResponseWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55021403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com