123456789101112131415161718192021222324252627282930313233343536 |
- package test
- import (
- "bytes"
- "encoding/json"
- "github.com/json-iterator/go"
- "testing"
- "github.com/stretchr/testify/require"
- )
- type Foo struct {
- Bar interface{}
- }
- func (f Foo) MarshalJSON() ([]byte, error) {
- var buf bytes.Buffer
- err := json.NewEncoder(&buf).Encode(f.Bar)
- return buf.Bytes(), err
- }
- // Standard Encoder has trailing newline.
- func TestEncodeMarshalJSON(t *testing.T) {
- foo := Foo {
- Bar: 123,
- }
- should := require.New(t)
- var buf, stdbuf bytes.Buffer
- enc := jsoniter.ConfigCompatibleWithStandardLibrary.NewEncoder(&buf)
- enc.Encode(foo)
- stdenc := json.NewEncoder(&stdbuf)
- stdenc.Encode(foo)
- should.Equal(stdbuf.Bytes(), buf.Bytes())
- }
|