Escapar de HTML y JSON en plantillas de Go
En las plantillas de Go, es esencial manejar HTML y JSON correctamente para evitar escapes no deseados. Considere la siguiente plantilla:
{{ .SomeOtherHTML }}
Si espera que el resultado sea simplemente
<the_other_html/<
Solución para escape HTML
Para evitar esto, debe pasar el código HTML como una plantilla.Tipo HTML en lugar de una cadena. template.HTML es un tipo especial que le indica a Go que no escape de su contenido. Por ejemplo:
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)
Solución para escape JSON
Si también necesita renderizar JSON, debe usar json. Función Marshal para convertirlo en una matriz de bytes. Esto evita que Go escape del contenido JSON. Por ejemplo:
jsonBytes, _ := json.Marshal(data)
outputString := string(jsonBytes)
Al seguir estas mejores prácticas, puede garantizar un escape adecuado de HTML y JSON en sus plantillas de Go, lo que dará como resultado el resultado deseado sin modificaciones no deseadas.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3