optional.Optional <-> JSON
type Struct struct {
Field optional.Optional[*string] `json:"field,omitempty"`
}
{
in: Struct{},
want: []byte(`{}`),
},
{
in: Struct{
Field: optional.New[*string](nil),
},
want: []byte(`{"field":null}`),
},
{
in: Struct{
Field: optional.New(stringPtr("")),
},
want: []byte(`{"field":""}`),
},
{
in: Struct{
Field: optional.New(stringPtr("test")),
},
want: []byte(`{"field":"test"}`),
},
{
in: []byte(`{}`),
want: Struct{},
},
{
in: []byte(`{"field":null}`),
want: Struct{
Field: optional.New[*string](nil),
},
},
{
in: []byte(`{"field":""}`),
want: Struct{
Field: optional.New(stringPtr("")),
},
},
{
in: []byte(`{"field":"test"}`),
want: Struct{
Field: optional.New(stringPtr("test")),
},
},