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.
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
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]
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!