code: def parse(cls, json):
          # type: (Dict) -> Any
          
          if 'vtype' in json:
              vtype = json.get('vtype')
              if vtype not in PropertyVTypes.values():
                  raise Exception("Validator unknown, incorrect json: '{}'".format(json))
  
              from pykechain.models.validators import validators
              vtype_implementation_classname = "{}{}".format(vtype[0].upper(), vtype[1:])  # type: ignore
              if hasattr(validators, vtype_implementation_classname):
                  return getattr(validators, vtype_implementation_classname)(json=json)
              else:
                  raise Exception('unknown vtype in json')
          raise Exception("Validator unknown, incorrect json: '{}'".format(json))
docs: Parse a json dict and return the correct subclass of :class:`PropertyValidator`.
  
          It uses the 'effect' key to determine which :class:`PropertyValidator` to instantiate.
          Please refer to :class:`pykechain.enums.PropertyVTypes` for the supported effects.
  
          :param json: dictionary containing the specific keys to parse into a :class:`PropertyValidator`
          :type json: dict
          :returns: the instantiated subclass of :class:`PropertyValidator`
          :rtype: :class:`PropertyValidator` or subclass thereof