Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mencapai JSON Marshalling tanpa HTML Escaping dalam Go?

Bagaimana untuk Mencapai JSON Marshalling tanpa HTML Escaping dalam Go?

Barbara Streisand
Lepaskan: 2024-12-10 07:27:08
asal
447 orang telah melayarinya

How to Achieve JSON Marshalling without HTML Escaping in Go?

JSON Marshalling tanpa HTML Escaping

Apabila mensiri data JSON, selalunya wajar untuk mengecualikan pengekodan entiti HTML untuk memastikan perwakilan yang tepat bagi aksara seperti < dan >.

Tingkah laku lalai json.Marshal tidak menyokong pilihan melarikan diri yang boleh disesuaikan. Walau bagaimanapun, dengan pengenalan pelaksanaan Marshaler tersuai, kami boleh mengatasi tingkah laku ini.

Marshaler Tersuai

Laksanakan kaedah MarshalJSON tersuai untuk struct anda:

func (t *Track) MarshalJSON() ([]byte, error) {
    buffer := &bytes.Buffer{}
    encoder := json.NewEncoder(buffer)
    encoder.SetEscapeHTML(false)
    err := encoder.Encode(t)
    return buffer.Bytes(), err
}
Salin selepas log masuk

Pelaksanaan ini menetapkan EscapeHTML kepada palsu dalam pengekod JSON, menghalang HTML melarikan diri entiti.

Penyelesaian Generik

Untuk pendekatan yang lebih generik, tentukan fungsi yang menggunakan marshaling tersuai pada mana-mana struct arbitrary:

func JSONMarshal(t interface{}) ([]byte, error) {
    buffer := &bytes.Buffer{}
    encoder := json.NewEncoder(buffer)
    encoder.SetEscapeHTML(false)
    err := encoder.Encode(t)
    return buffer.Bytes(), err
}
Salin selepas log masuk

Fungsi boleh guna semula ini boleh digunakan untuk elakkan HTML melarikan diri untuk mana-mana struct yang memerlukannya.

Contoh Penggunaan

Untuk menggunakan salah satu pendekatan ini, cuma panggil JSON() atau JSONMarshal() pada jenis struct sasaran anda dan kendalikan kepingan bait yang terhasil seperti yang diperlukan.

Ingat bahawa penyelesaian ini hanya terpakai apabila anda mempunyai kawalan penuh ke atas data yang disiri. Jika kod luaran atau perpustakaan pihak ketiga terlibat, adalah penting untuk memastikan keserasian dengan gelagat melarikan diri yang dijangkakan.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai JSON Marshalling tanpa HTML Escaping dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan