Parcourir la source

#76 fix UnmarshalJSON

Tao Wen il y a 8 ans
Parent
commit
08dbc98040
1 fichiers modifiés avec 5 ajouts et 0 suppressions
  1. 5 0
      feature_reflect.go

+ 5 - 0
feature_reflect.go

@@ -267,6 +267,11 @@ func createDecoderOfType(cfg *frozenConfig, typ reflect.Type) (ValDecoder, error
 		}
 		return decoder, nil
 	}
+	if reflect.PtrTo(typ).ConvertibleTo(unmarshalerType) {
+		templateInterface := reflect.New(typ).Interface()
+		var decoder ValDecoder = &unmarshalerDecoder{extractInterface(templateInterface)}
+		return decoder, nil
+	}
 	if typ.ConvertibleTo(anyType) {
 		return &anyCodec{}, nil
 	}