| 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()) |
| } |