Browse Source

#76 fix UnmarshalJSON

Tao Wen 8 years ago
parent
commit
08dbc98040
1 changed files with 5 additions and 0 deletions
  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
 	}