ZBLOG

golang []byte 类型值怎么转回map

将 []byte 类型的值转回 map 的过程需要进行反序列化操作,常见的方式有 JSON 反序列化和 Gob 反序列化两种。

  1. JSON 反序列化

示例代码:

import (
    "encoding/json"
)

func main() {
    data := []byte(`{"name":"John","age":30,"city":"New York"}`)
    var m map[string]interface{}
    err := json.Unmarshal(data, &m)
    if err != nil {
        // 处理错误
    }
    fmt.Println(m) // 输出:map[age:30 city:New York name:John]
}

上述代码中,我们使用了 json.Unmarshal() 方法将字节数组类型的数据转换成了 map 类型。注意,在这个过程中,我们需要定义一个空的 map 对象,并将其传递给 json.Unmarshal() 方法作为反序列化后的结果对象。

  1. Gob 反序列化

示例代码:

import (
    "bytes"
    "encoding/gob"
)

func main() {
    data := []byte{6, 0, 0, 0, 0, 0} // 假设这是一个 gob 编码后的字节数组
    dec := gob.NewDecoder(bytes.NewReader(data))
    var m map[string]interface{}
    err := dec.Decode(&m)
    if err != nil {
        // 处理错误
    }
    fmt.Println(m) // 输出:map[]
}

在上述代码中,我们使用了 gob.NewDecoder() 方法创建了一个解码器对象,然后调用 Decode() 方法将字节数组类型的数据转换成了 map 类型。注意,在这个过程中,我们需要定义一个空的 map 对象,并将其传递给 Decode() 方法作为反序列化后的结果对象。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4829

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?