在python中,序列化一个包含多种数据类型的列表如下,
import msgpack data = ['abc', 12345, 1.2345] buf = msgpack.dumps(data) print(buf)
不知道golang下怎么使用,官方的msgpack好像只能序列同种类型的array; 另外的我想的办法是将array内的所有数据序列化一次,全部弄成字符串再使用array序列化,但是有点担心效率问题。
各位有好的办法也请告知在下~
光阴似箭催人老,日月如移越少年。
I solved it myself, using github.com/ugorji/go/codec, []interface{} can work normally.
package main import ( "bytes" "fmt" "github.com/ugorji/go/codec" ) func main() { mh := &codec.MsgpackHandle{RawToString: true} data := []interface{}{"abc", 12345, 1.2345} buf := &bytes.Buffer{} enc := codec.NewEncoder(buf, mh) enc.Encode(data) fmt.Printf("%x", buf) }
I solved it myself, using github.com/ugorji/go/codec, []interface{} can work normally.