26 lines
621 B
Go
26 lines
621 B
Go
package openwechat
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
)
|
|
|
|
// Serializer is an interface for encoding and decoding data.
|
|
type Serializer interface {
|
|
Encode(writer io.Writer, v interface{}) error
|
|
Decode(reader io.Reader, v interface{}) error
|
|
}
|
|
|
|
// JsonSerializer is a serializer for json.
|
|
type JsonSerializer struct{}
|
|
|
|
// Encode encodes v to writer.
|
|
func (j JsonSerializer) Encode(writer io.Writer, v interface{}) error {
|
|
return json.NewEncoder(writer).Encode(v)
|
|
}
|
|
|
|
// Decode decodes data from reader to v.
|
|
func (j JsonSerializer) Decode(reader io.Reader, v interface{}) error {
|
|
return json.NewDecoder(reader).Decode(v)
|
|
}
|