github.com/zly-app/zapp@v1.3.3/pkg/serializer/jsoniter_standard.go (about) 1 package serializer 2 3 import ( 4 "io" 5 6 jsoniter "github.com/json-iterator/go" 7 ) 8 9 // jsonIter 实现的模拟内置 json 库 10 const JsonIterStandardSerializerName = "jsoniter_standard" 11 12 type jsonIterStandardSerializer struct{} 13 14 var jsonIterStandard = jsoniter.ConfigCompatibleWithStandardLibrary 15 16 func (jsonIterStandardSerializer) Marshal(a interface{}, w io.Writer) error { 17 return jsonIterStandard.NewEncoder(w).Encode(a) 18 } 19 20 func (s jsonIterStandardSerializer) MarshalBytes(a interface{}) ([]byte, error) { 21 return jsonIterStandard.Marshal(a) 22 } 23 24 func (jsonIterStandardSerializer) Unmarshal(r io.Reader, a interface{}) error { 25 return jsonIterStandard.NewDecoder(r).Decode(a) 26 } 27 28 func (s jsonIterStandardSerializer) UnmarshalBytes(data []byte, a interface{}) error { 29 return jsonIterStandard.Unmarshal(data, a) 30 }