[]byte を JSON にマーシャリングする
Go では、[]byte を JSON にマーシャリングする方法は、他のデータ型とは少し異なります。バイトを配列として直接エンコードする代わりに、JSON パッケージは []byte を Base64 でエンコードされた文字列としてエンコードします。この動作は、encoding/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 エンコードされた文字列出力
あなたの場合、 json.Marshal(グループ)には「AAAAAQID」が含まれています。これは、[]byte スライスの Base64 エンコードを表します。
originalBytes := []byte{0, 0, 0, 1, 2, 3} encodedString := base64.StdEncoding.EncodeToString(originalBytes) fmt.Println(encodedString) // Output: AAAAAQID
Base64 データのデコード
エンコードされた文字列から元の []byte 値を取得するには、次のようにします。 Base64 データをデコードできます:
decodedBytes, err := base64.StdEncoding.DecodeString("AAAAAQID") if err != nil { // Handle error } fmt.Println(decodedBytes) // Output: [0 0 0 1 2 3]
以上がGo の「json.Marshal」が「[]byte」を Base64 文字列としてエンコードするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。