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  }