Rumah > Artikel > pembangunan bahagian belakang > Bagaimana dengan Cekap Menukar Rentetan UTF-8 kepada Tatasusunan Byte dalam Go?
Menukar Rentetan UTF-8 kepada Tatasusunan Byte
Menyahmarshalling JSON memerlukan input kepingan bait, manakala rentetan disimpan sebagai UTF-8 dalam Go . Artikel ini meneroka penukaran rentetan UTF-8 yang cekap kepada tatasusunan bait.
Penukaran Terus
Go membenarkan penukaran rentetan kepada kepingan bait, mencipta salinan bait rentetan :
<code class="go">s := "some text" b := []byte(s)</code>
Walau bagaimanapun, untuk rentetan yang besar, pendekatan ini tidak cekap kerana penyalinan.
Menggunakan io.Reader
Alternatif yang cekap sedang menggunakan strings.NewReader() untuk mencipta io.Reader yang membaca daripada rentetan tanpa menyalin:
<code class="go">s := `{ "somekey": "somevalue" }` var result interface{} err := json.NewDecoder(strings.NewReader(s)).Decode(&result)</code>
Pendekatan ini mengelakkan penyalinan rentetan.
Teks JSON Kecil
Untuk teks JSON yang kecil, penukaran langsung kekal sebagai pilihan pantas:
<code class="go">s := `{ "somekey": "somevalue" }` var result interface{} err := json.Unmarshal([]byte(s), &result)</code>
Nota: Apabila membaca JSON daripada io.Reader (cth., fail atau rangkaian), hantar io.Reader terus ke json.NewDecoder() tanpa bacaan rentetan perantaraan.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Rentetan UTF-8 kepada Tatasusunan Byte dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!