Heim >Backend-Entwicklung >Golang >Wie vermeide ich unbeabsichtigtes Escapen von HTML und JSON in Go-Vorlagen?
HTML und JSON in Go-Vorlagen maskieren
In Go-Vorlagen ist es wichtig, HTML und JSON ordnungsgemäß zu handhaben, um unbeabsichtigtes Escapen zu verhindern. Betrachten Sie die folgende Vorlage:
<some_html> {{ .SomeOtherHTML }} </some_html>
Wenn Sie erwarten, dass die Ausgabe einfach
<some_html> <the_other_html/< </some_html>
Lösung für HTML-Escapezeichen
Um dies zu verhindern, sollten Sie den HTML-Code als Vorlage übergeben. HTML-Typ anstelle einer Zeichenfolge. template.HTML ist ein spezieller Typ, der Go anweist, seinen Inhalt nicht zu maskieren. Zum Beispiel:
<code class="go">tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`)) tplVars := map[string]interface{} { "Html": template.HTML("<p>Paragraph</p>"), "String": "<p>Paragraph</p>", } tpl.ExecuteTemplate(os.Stdout, "T", tplVars)</code>
Lösung für JSON Escaping
Wenn Sie auch JSON rendern müssen, sollten Sie die Funktion json.Marshal verwenden, um es in ein Byte umzuwandeln Array. Dadurch wird verhindert, dass Go dem JSON-Inhalt entgeht. Zum Beispiel:
<code class="go">jsonBytes, _ := json.Marshal(data) outputString := string(jsonBytes)</code>
Durch Befolgen dieser Best Practices können Sie sicherstellen, dass HTML und JSON in Ihren Go-Vorlagen ordnungsgemäß maskiert werden, sodass die gewünschte Ausgabe ohne unbeabsichtigte Änderungen erzielt wird.
Das obige ist der detaillierte Inhalt vonWie vermeide ich unbeabsichtigtes Escapen von HTML und JSON in Go-Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!