...
1
16
17 package issue_test
18
19 import (
20 `testing`
21 `encoding/json`
22 `github.com/stretchr/testify/require`
23 `github.com/bytedance/sonic`
24 )
25
26 type FooId struct {
27 Id int `json:"id"`
28 }
29
30 func TestUnmarshalErrorInMapSlice(t *testing.T) {
31 var a, b map[string][]FooId
32 mapdata := `{"ptrslice": [{"id": "1"}, {"id": "2"}, {"id": "3"}, {"id": "4"}]}`
33 se := json.Unmarshal([]byte(mapdata), &a)
34 je := sonic.Unmarshal([]byte(mapdata), &b)
35 require.Equal(t, se == nil, je == nil);
36 require.Equal(t, a, b);
37 }
38
39 func TestUnmarshalErrorInSlice(t *testing.T) {
40 var a, b []*FooId
41 slicedata := `[{"id": "1"}, {"id": "2"}, {"id": "3"}, {"id": 4}]`
42 je := json.Unmarshal([]byte(slicedata), &a)
43 se := sonic.Unmarshal([]byte(slicedata), &b)
44 require.Equal(t, se == nil, je == nil);
45 require.Equal(t, a, b);
46 }
47
View as plain text