github.com/sandwich-go/boost@v1.3.29/xencoding/README.md (about) 1 # encoding2 2 3 编码解码器 4 5 - 提供压缩/解压缩编码解码方式 6 - 提供加密/解密编码解码方式 7 - 提供 `json` 编码解码方式 8 - 提供 `pbjson` 编码解码方式 9 - 提供 `protobuf` 编码解码方式 10 - 提供 `msgpack` 编码解码方式 11 12 13 # 例子 14 15 ```go 16 ctx, cancel := context.WithCancel(context.Background()) 17 defer cancel() 18 19 frame := []byte("time.Duration,[]time.Duration,map[string]*Redis此类的非基础类型的slice或者map都需要辅助指明类型") 20 21 for _, n := Codecs() { 22 codec := GetCodec(nn) 23 bs, err := codec.Marshal(context.Background(), frame) 24 xpanic.WhenError(err) 25 var raw []byte 26 err = codec.Unmarshal(context.Background(), bs, &raw) 27 xpanic.WhenError(err) 28 fmt.Println(string(raw)) 29 } 30 31 ctx = WithContext(ctx, GetCodec(encrypt.AESCodecName)) 32 _, err0 := FromContext(ctx).Marshal(context.Background(), frame) 33 xpanic.WhenError(err0) 34 35 var raw1 []byte 36 err0 = FromContext(ctx).Unmarshal(context.Background(), bs, &raw1) 37 xpanic.WhenError(err0) 38 fmt.Println(string(raw1)) 39 ```