Rumah > pembangunan bahagian belakang > Golang > Mengapakah `json.Marshal` Go Mengekodkan `[]bait` sebagai Rentetan Base64?

Mengapakah `json.Marshal` Go Mengekodkan `[]bait` sebagai Rentetan Base64?

Patricia Arquette
Lepaskan: 2024-12-10 01:23:10
asal
336 orang telah melayarinya

Why Does Go's `json.Marshal` Encode `[]byte` as a Base64 String?

Marshaling []bait kepada JSON

Dalam Go, marshaling []bait kepada JSON berbeza sedikit daripada jenis data lain. Daripada mengekodkan bait secara langsung sebagai tatasusunan, pakej JSON mengekod []bait sebagai rentetan berkod base64. Tingkah laku ini dinyatakan secara eksplisit dalam dokumentasi untuk pengekodan/json:

Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON object.
Salin selepas log masuk

Base64-Encoded String Output

Dalam kes anda, output json.Marshal( kumpulan) mengandungi "AAAAQID". Ini mewakili pengekodan base64 bagi kepingan []bait anda:

originalBytes := []byte{0, 0, 0, 1, 2, 3}
encodedString := base64.StdEncoding.EncodeToString(originalBytes)

fmt.Println(encodedString) // Output: AAAAAQID
Salin selepas log masuk

Menyahkod Data Base64

Untuk mendapatkan semula nilai []bait asal daripada rentetan yang dikodkan, anda boleh menyahkod data base64:

decodedBytes, err := base64.StdEncoding.DecodeString("AAAAAQID")
if err != nil {
    // Handle error
}

fmt.Println(decodedBytes) // Output: [0 0 0 1 2 3]
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapakah `json.Marshal` Go Mengekodkan `[]bait` sebagai Rentetan Base64?. 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