|
@@ -0,0 +1,34 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "bytes"
|
|
|
+ "encoding/gob"
|
|
|
+ "encoding/hex"
|
|
|
+ "fmt"
|
|
|
+ "io/ioutil"
|
|
|
+ "os"
|
|
|
+)
|
|
|
+
|
|
|
+func EncodeGob(obj map[interface{}]interface{}) ([]byte, error) {
|
|
|
+ for _, v := range obj {
|
|
|
+ gob.Register(v)
|
|
|
+ }
|
|
|
+ buf := bytes.NewBuffer(nil)
|
|
|
+ err := gob.NewEncoder(buf).Encode(obj)
|
|
|
+ return buf.Bytes(), err
|
|
|
+}
|
|
|
+
|
|
|
+func main() {
|
|
|
+ var uid int64 = 1
|
|
|
+ obj := map[interface{}]interface{}{"_old_uid": "1", "uid": uid, "uname": "root"}
|
|
|
+ data, err := EncodeGob(obj)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ }
|
|
|
+ err = ioutil.WriteFile("data", data, os.O_CREATE|os.O_WRONLY)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ }
|
|
|
+ edata := hex.EncodeToString(data)
|
|
|
+ fmt.Println(edata)
|
|
|
+}
|