在Go 模板中轉義HTML 和JSON
在Go 模板中,正確處理HTML 和JSON 以防止意外轉義至關重要。考慮以下範本:
{{ .SomeOtherHTML }}
如果您希望輸出只是
<the_other_html/<
HTML 轉義的解決方案
要防止這種情況,您應該將HTML 程式碼作為template.HTML 類型而不是字串傳遞。 template.HTML 是一種特殊類型,指示 Go 不要轉義其內容。例如:
tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`))
tplVars := map[string]interface{} {
"Html": template.HTML("Paragraph
"),
"String": "Paragraph
",
}
tpl.ExecuteTemplate(os.Stdout, "T", tplVars)
JSON轉義的解決方案
如果你還需要渲染JSON,你應該使用json. Marshal 函數將其轉換為位元組數組。這可以防止 Go 轉義 JSON 內容。例如:
jsonBytes, _ := json.Marshal(data)
outputString := string(jsonBytes)
透過遵循這些最佳實踐,您可以確保在 Go 範本中正確轉義 HTML 和 JSON,從而獲得所需的輸出,而無需意外修改。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3