Échapper le HTML et le JSON dans les modèles Go
Dans les modèles Go, il est essentiel de gérer correctement le HTML et le JSON pour éviter tout échappement involontaire. Considérez le modèle suivant :
<some_html> {{ .SomeOtherHTML }} </some_html>
Si vous vous attendez à ce que le résultat soit simplement
<some_html> <the_other_html/< </some_html>
Solution pour l'échappement HTML
Pour éviter cela, vous devez transmettre le code HTML comme modèle. Tapez HTML au lieu d'une chaîne. template.HTML est un type spécial qui demande à Go de ne pas échapper à son contenu. Par exemple :
<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>
Solution pour l'échappement JSON
Si vous devez également restituer JSON, vous devez utiliser la fonction json.Marshal pour le convertir en octet tableau. Cela empêche Go d'échapper au contenu JSON. Par exemple :
<code class="go">jsonBytes, _ := json.Marshal(data) outputString := string(jsonBytes)</code>
En suivant ces bonnes pratiques, vous pouvez garantir un échappement correct du HTML et du JSON dans vos modèles Go, ce qui entraîne le résultat souhaité sans modifications involontaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!