Marshaling von []Byte zu JSON
In Go unterscheidet sich das Marshalling von []Byte zu JSON geringfügig von anderen Datentypen. Anstatt die Bytes direkt als Array zu kodieren, kodiert das JSON-Paket []byte als Base64-kodierte Zeichenfolge. Dieses Verhalten wird in der Dokumentation für „encoding/json“ explizit angegeben:
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
In Ihrem Fall ist die Ausgabe von json.Marshal( Gruppe) enthält „AAAAAQID“. Dies stellt die Base64-Codierung Ihres []Byte-Slices dar:
originalBytes := []byte{0, 0, 0, 1, 2, 3} encodedString := base64.StdEncoding.EncodeToString(originalBytes) fmt.Println(encodedString) // Output: AAAAAQID
Base64-Daten dekodieren
Um die ursprünglichen []Byte-Werte aus der codierten Zeichenfolge abzurufen, müssen Sie kann die Base64-Daten dekodieren:
decodedBytes, err := base64.StdEncoding.DecodeString("AAAAAQID") if err != nil { // Handle error } fmt.Println(decodedBytes) // Output: [0 0 0 1 2 3]
Das obige ist der detaillierte Inhalt vonWarum kodiert „json.Marshal' von Go „[]byte' als Base64-String?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!