[英]How to convert struct to base64 encoded string and viceversa
給定一個結構實例,我想將其轉換為 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
我哪里錯了?
導出字段名稱。 JSON 編解碼器忽略未導出的名稱。
type Vertex struct {
FirstName int `json:"first-name"`
LastName int `json:"last-name"`
}
要進行編碼,請使用 base64 編碼器和 JSON 編碼器包裝緩沖區:
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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.