Bagaimana dengan Cekap Menukar Rentetan UTF8 kepada Tatasusunan Byte untuk JSON Unmarshaling dalam Go?

DDD
Lepaskan: 2024-10-30 05:29:27
asal
709 orang telah melayarinya

How to Efficiently Convert UTF8 Strings to Byte Arrays for JSON Unmarshaling in Go?

Menukar Rentetan UTF8 kepada Tatasusunan Byte untuk JSON Unmarshaling

Apabila membuka rentetan JSON menggunakan fungsi Unmarshal, parameter yang mewakili tatasusunan bait ialah diperlukan. Artikel ini menyediakan kaedah yang cekap untuk menukar rentetan UTF8 kepada tatasusunan bait yang serasi.

Proses Penukaran

Bahasa Go membenarkan penukaran terus daripada rentetan kepada tatasusunan bait, sebagai dinyatakan dalam spesifikasi bahasa. Kod berikut menunjukkan penukaran ini:

<code class="go">s := "some text"
b := []byte(s) // b is of type []byte</code>
Salin selepas log masuk

Walau bagaimanapun, penukaran ini boleh menjadi tidak cekap untuk rentetan besar disebabkan oleh operasi salin yang dilakukannya. Pendekatan alternatif ialah menggunakan io.Reader untuk mengelakkan overhed salinan. Ini melibatkan mencipta io.Reader menggunakan strings.NewReader() dan menghantarnya kepada json.NewDecoder() sebaliknya:

<code class="go">s := `{&quot;somekey&quot;:&quot;somevalue&quot;}`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&amp;result)
fmt.Println(result, err)</code>
Salin selepas log masuk

Kaedah ini membenarkan atur cara mengakses data JSON tanpa membuat salinan input rentetan.

Pertimbangan Prestasi

Overhed yang dikaitkan dengan mencipta io.Reader dan menggunakan json.NewDecoder() harus dipertimbangkan untuk teks JSON yang kecil. Dalam kes sedemikian, penukaran langsung melalui []bait masih merupakan pilihan yang berdaya maju kerana ia memberikan prestasi yang setanding.

Kesimpulan

Bergantung pada saiz dan sumber input JSON, kaedah yang berbeza boleh digunakan untuk menukar rentetan UTF8 kepada tatasusunan bait untuk unmarshaling. Dengan memanfaatkan penukaran langsung atau pendekatan io.Reader, pembangun boleh memproses data JSON dengan berkesan dalam aplikasi Go mereka.

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Rentetan UTF8 kepada Tatasusunan Byte untuk JSON Unmarshaling 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!