diff --git a/optional_marshaljson.go b/optional_marshaljson.go index 4d144cb..c2c8111 100644 --- a/optional_marshaljson.go +++ b/optional_marshaljson.go @@ -11,7 +11,7 @@ var _ json.Marshaler = Nothing[string]() // MarshalJSON makes it so json.Marshaler is implemented. func (receiver Optional[T]) MarshalJSON() ([]byte, error) { switch interface{}(receiver.value).(type) { - case bool, string: + case bool, string, json.Marshaler: // these are OK. default: return nil, fmt.Errorf("cannot marshal something of type %T into JSON because parameterized type is ‘%T’ rather than ‘bool’ or ‘string’", receiver, receiver.value)