@classmethod<EOL><INDENT>def _deserialize(cls, json_body, get_value_and_type):<DEDENT>
instance = cls()<EOL>is_set = False<EOL>properties = cls._get_property_names(instance)<EOL>def get_property_detail(name):<EOL><INDENT>p = [p for p in instance._property_details if p.name == name or p.field_name == name]<EOL>return None if len(p) == <NUM_LIT:0> else p[<NUM_LIT:0>]<EOL><DEDENT>for k in json_body:<EOL><INDENT>field = json_body[k]<EOL>pd = get_property_detail(k)<EOL>pn = k if not pd else pd.to_property_name(k)<EOL>if pn in properties:<EOL><INDENT>v, t = get_value_and_type(field)<EOL>initial_value = getattr(instance, pn)<EOL>value = instance._field_to_property(v, t, pd, initial_value)<EOL>setattr(instance, pn, value)<EOL>is_set = True<EOL><DEDENT><DEDENT>return instance if is_set else None<EOL>
deserialize json to model
:param json_body: json data
:param get_value_and_type: function(f: json_field) -> value, field_type_string(see FieldType)
:return: