code: def _DecodeUnknownFields(message, encoded_message):
      
      destination = _UNRECOGNIZED_FIELD_MAPPINGS.get(type(message))
      if destination is None:
          return message
      pair_field = message.field_by_name(destination)
      if not isinstance(pair_field, messages.MessageField):
          raise exceptions.InvalidDataFromServerError(
              'Unrecognized fields must be mapped to a compound '
              'message type.')
      pair_type = pair_field.message_type
      # TODO(craigcitro): Add more error checking around the pair
      # type being exactly what we suspect (field names, etc).
      if isinstance(pair_type.value, messages.MessageField):
          new_values = _DecodeUnknownMessages(
              message, json.loads(encoded_message), pair_type)
      else:
          new_values = _DecodeUnrecognizedFields(message, pair_type)
      setattr(message, destination, new_values)
      # We could probably get away with not setting this, but
      # why not clear it?
      setattr(message, '_Message__unrecognized_fields', {})
      return message
docs: Rewrite unknown fields in message into message.destination.