Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengelakkan HTML dan JSON yang tidak disengajakan melarikan diri dalam Templat Go?
Melepaskan HTML dan JSON dalam Templat Go
Templat In Go, adalah penting untuk mengendalikan HTML dan JSON dengan betul untuk mengelakkan pelarian yang tidak diingini. Pertimbangkan templat berikut:
<some_html> {{ .SomeOtherHTML }} </some_html>
Jika anda menjangkakan output hanyalah
<some_html> <the_other_html/< </some_html>
Penyelesaian untuk HTML Melarikan diri
Untuk mengelakkan ini, anda harus lulus kod HTML sebagai templat. Jenis HTML dan bukannya rentetan. template.HTML ialah jenis khas yang mengarahkan Go jangan lari daripada kandungannya. Contohnya:
<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>
Penyelesaian untuk JSON Escaping
Jika anda juga perlu membuat JSON, anda harus menggunakan fungsi json.Marshal untuk menukarnya menjadi bait tatasusunan. Ini menghalang Go daripada melarikan diri daripada kandungan JSON. Contohnya:
<code class="go">jsonBytes, _ := json.Marshal(data) outputString := string(jsonBytes)</code>
Dengan mengikuti amalan terbaik ini, anda boleh memastikan HTML dan JSON melarikan diri dengan betul dalam templat Go anda, menghasilkan output yang diingini tanpa pengubahsuaian yang tidak diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan HTML dan JSON yang tidak disengajakan melarikan diri dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!