package jsoniter import ( "github.com/stretchr/testify/require" "testing" ) func Test_encode_optional_int_pointer(t *testing.T) { should := require.New(t) var ptr *int str, err := MarshalToString(ptr) should.Nil(err) should.Equal("null", str) val := 100 ptr = &val str, err = MarshalToString(ptr) should.Nil(err) should.Equal("100", str) } func Test_decode_struct_with_optional_field(t *testing.T) { should := require.New(t) type TestObject struct { Field1 *string Field2 *string } obj := TestObject{} UnmarshalFromString(`{"field1": null, "field2": "world"}`, &obj) should.Nil(obj.Field1) should.Equal("world", *obj.Field2) } func Test_encode_struct_with_optional_field(t *testing.T) { should := require.New(t) type TestObject struct { Field1 *string Field2 *string } obj := TestObject{} world := "world" obj.Field2 = &world str, err := MarshalToString(obj) should.Nil(err) should.Contains(str, `"Field1":null`) should.Contains(str, `"Field2":"world"`) }