go笔记:序列化对象为byte

2019-11-22 09:42:26 浏览数 (1)

使用gob包,一劳永逸解决这个问题

代码语言:javascript复制
package utils
 
import (
    "bytes"
    "encoding/gob"
)
 
func Encode(data interface{}) ([]byte, error) {
    buf := bytes.NewBuffer(nil)
    enc := gob.NewEncoder(buf)
    err := enc.Encode(data)
    if err != nil {
        return nil, err
    }
    return buf.Bytes(), nil
}
 
// -------------------
// Decode
// 用gob进行数据解码
//
func Decode(data []byte, to interface{}) error {
    buf := bytes.NewBuffer(data)
    dec := gob.NewDecoder(buf)
    return dec.Decode(to)
}
//注意先注册类型
//gob.Register([]supervisor.InterfaceInfo{})

0 人点赞