mirror of
https://github.com/json-iterator/go.git
synced 2024-11-24 08:22:14 +02:00
fix #311 handle nil any
This commit is contained in:
parent
2433035e51
commit
5916df66b3
4
any.go
4
any.go
@ -312,6 +312,10 @@ func (codec *directAnyCodec) Decode(ptr unsafe.Pointer, iter *Iterator) {
|
|||||||
|
|
||||||
func (codec *directAnyCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
|
func (codec *directAnyCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
|
||||||
any := *(*Any)(ptr)
|
any := *(*Any)(ptr)
|
||||||
|
if any == nil {
|
||||||
|
stream.WriteNil()
|
||||||
|
return
|
||||||
|
}
|
||||||
any.WriteTo(stream)
|
any.WriteTo(stream)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,3 +224,13 @@ func Test_EmptyInput(t *testing.T) {
|
|||||||
t.Errorf("Expected error")
|
t.Errorf("Expected error")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Foo struct {
|
||||||
|
A jsoniter.Any
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_nil_any(t *testing.T) {
|
||||||
|
should := require.New(t)
|
||||||
|
data, _ := jsoniter.Marshal(&Foo{})
|
||||||
|
should.Equal(`{"A":null}`, string(data))
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user