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!