gpt4 book ai didi

serialization - 如何在go中序列化/反序列化 map

转载 作者:IT老高 更新时间:2023-10-28 13:06:22 31 4
gpt4 key购买 nike

我的直觉告诉我,它必须以某种方式转换为字符串或字节 [](在 Go 中甚至可能是相同的东西?)然后保存到磁盘。

我找到了这个包 (http://golang.org/pkg/encoding/gob/),但它似乎只适用于结构?

最佳答案

序列化数据有多种方式,Go 提供了很多包。一些常用编码方式的包:

编码/gob
编码/xml
编码/json

encoding/gob 可以很好地处理 map 。下面的示例显示了 map 的编码/解码:

    package main

import (
"fmt"
"encoding/gob"
"bytes"
)

var m = map[string]int{"one":1, "two":2, "three":3}

func main() {
b := new(bytes.Buffer)

e := gob.NewEncoder(b)

// Encoding the map
err := e.Encode(m)
if err != nil {
panic(err)
}

var decodedMap map[string]int
d := gob.NewDecoder(b)

// Decoding the serialized data
err = d.Decode(&decodedMap)
if err != nil {
panic(err)
}

// Ta da! It is a map!
fmt.Printf("%#v\n", decodedMap)
}

Playground

关于serialization - 如何在go中序列化/反序列化 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19762413/

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