mirror of
https://github.com/json-iterator/go.git
synced 2025-03-23 21:09:11 +02:00
#16 fix slice of map
This commit is contained in:
parent
d1aa59e34e
commit
e5476f70e7
@ -20,6 +20,9 @@ func encoderOfSlice(typ reflect.Type) (Encoder, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if typ.Elem().Kind() == reflect.Map {
|
||||
encoder = &optionalEncoder{typ.Elem(), encoder}
|
||||
}
|
||||
return &sliceEncoder{typ, typ.Elem(), encoder}, nil
|
||||
}
|
||||
|
||||
|
@ -56,3 +56,14 @@ func Test_write_val_map(t *testing.T) {
|
||||
should.Nil(err)
|
||||
should.Equal(`{"1":"2"}`, str)
|
||||
}
|
||||
|
||||
func Test_slice_of_map(t *testing.T) {
|
||||
should := require.New(t)
|
||||
val := []map[string]string{{"1": "2"}}
|
||||
str, err := MarshalToString(val)
|
||||
should.Nil(err)
|
||||
should.Equal(`[{"1":"2"}]`, str)
|
||||
val = []map[string]string{}
|
||||
should.Nil(UnmarshalFromString(str, &val))
|
||||
should.Equal("2", val[0]["1"])
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user