You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

json.go 458 B

1234567891011121314151617181920212223242526272829
  1. package json
  2. import (
  3. "bytes"
  4. jsoniter "github.com/json-iterator/go"
  5. )
  6. type Serder struct {
  7. cfg Config
  8. api jsoniter.API
  9. }
  10. func (s *Serder) Encode(obj any) ([]byte, error) {
  11. buf := new(bytes.Buffer)
  12. enc := s.api.NewEncoder(buf)
  13. err := enc.Encode(obj)
  14. if err != nil {
  15. return nil, err
  16. }
  17. return buf.Bytes(), nil
  18. }
  19. func (s *Serder) Decode(data []byte, obj any) error {
  20. dec := s.api.NewDecoder(bytes.NewReader(data))
  21. return dec.Decode(&obj)
  22. }