Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan UTF-8 kepada Tatasusunan Byte untuk JSON Unmarshaling dalam Go?

Bagaimana untuk Menukar Rentetan UTF-8 kepada Tatasusunan Byte untuk JSON Unmarshaling dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 13:27:04260semak imbas

How to Convert UTF-8 Strings to Byte Arrays for JSON Unmarshaling in Go?

Menukar Rentetan UTF-8 kepada Tatasusunan Byte untuk JSON Unmarshaling

Untuk menyahmarshal rentetan JSON, seseorang mesti menyediakan tatasusunan bait ([]bait) sebagai input kepada fungsi yang ditetapkan. Artikel ini meneroka kaedah untuk menukar rentetan UTF-8 kepada []bait untuk tujuan ini.

Kaedah 1: Penukaran Jenis Terus

The Go bahasa membenarkan penukaran terus rentetan kepada []bait menggunakan hantaran jenis mudah:

s := "some text"
b := []byte(s) // b is of type []byte

Kaedah ini dibenarkan oleh spesifikasi bahasa, di mana ia menyatakan bahawa menukar rentetan kepada []bait menghasilkan kepingan yang mengandungi bait individu rentetan.

Kaedah 2: Menggunakan io.Reader dengan json.NewDecoder()

Sebagai alternatif, io.Reader boleh digunakan dengan json.NewDecoder(). io.Reader yang disediakan akan membaca daripada rentetan tanpa membuat salinan, mengoptimumkan proses:

s := `{"somekey":"somevalue"}`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)

Kaedah ini mengelakkan overhed menyalin kandungan rentetan ke [ ]bait, menjadikannya lebih baik untuk teks JSON yang lebih besar.

Nota: Untuk rentetan JSON yang kecil, penukaran jenis langsung menggunakan []bait ialah masih merupakan pilihan yang berdaya maju dengan kesan prestasi yang boleh diabaikan.

Kesimpulan

Artikel ini menunjukkan dua kaedah untuk menukar rentetan UTF-8 kepada []bait untuk JSON unmarshaling: cast jenis langsung dan menggunakan io.Reader dengan json.NewDecoder(). Kaedah yang sesuai untuk digunakan bergantung pada kes penggunaan dan saiz data tertentu.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan UTF-8 kepada Tatasusunan Byte untuk JSON Unmarshaling dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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