gpt4 book ai didi

go - 如何将结构转换为base64编码的字符串,反之亦然

转载 作者:行者123 更新时间:2023-12-01 22:44:09 24 4
gpt4 key购买 nike

给定一个结构实例,我想将其转换为base64编码的字符串。并将其解码回一个结构。
到目前为止,我已经尝试过这种编码方式:https://play.golang.org/p/tLLQzEXAnBC,但仍然遇到以下错误:

./prog.go:18:20: v.JSON undefined (type Vertex has no field or method JSON)
./prog.go:33:9: undefined: Base64
我要去哪里错了?

最佳答案

Export字段名称。 JSON编解码器将忽略未导出的名称。

type Vertex struct {
FirstName int `json:"first-name"`
LastName int `json:"last-name"`
}
要进行编码,请使用带有JSON编码器的base64编码器包装缓冲区:
func encodeToBase64(v interface{}) (string, error) {
var buf bytes.Buffer
encoder := base64.NewEncoder(base64.StdEncoding, &buf)
err := json.NewEncoder(encoder).Encode(v)
if err != nil {
return "", err
}
encoder.Close()
return buf.String(), nil
}
反过来解码:
func decodeFromBase64(v interface{}, enc string) error {
return json.NewDecoder(base64.NewDecoder(base64.StdEncoding, strings.NewReader(enc))).Decode(v)
}
这是函数的使用示例:
v0 := Vertex{1, 2}
enc, err := encodeToBase64(v0)
if err != nil {
log.Fatal(err)
}
fmt.Println(enc)

var v1 Vertex
if err := decodeFromBase64(&v1, enc); err != nil {
log.Fatal(err)
}
Run the example on the GoLang PlayGround

关于go - 如何将结构转换为base64编码的字符串,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63126139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com