protected SchemaAndValue convertTo(Schema desiredSchema, Object value) {
        Object newValue = null;
        switch (desiredSchema.type()) {
            case STRING:
                newValue = Values.convertToString(Schema.STRING_SCHEMA, value);
                break;
            case INT8:
                newValue = Values.convertToByte(Schema.STRING_SCHEMA, value);
                break;
            case INT16:
                newValue = Values.convertToShort(Schema.STRING_SCHEMA, value);
                break;
            case INT32:
                newValue = Values.convertToInteger(Schema.STRING_SCHEMA, value);
                break;
            case INT64:
                newValue = Values.convertToLong(Schema.STRING_SCHEMA, value);
                break;
            case FLOAT32:
                newValue = Values.convertToFloat(Schema.STRING_SCHEMA, value);
                break;
            case FLOAT64:
                newValue = Values.convertToDouble(Schema.STRING_SCHEMA, value);
                break;
            case BOOLEAN:
                newValue = Values.convertToBoolean(Schema.STRING_SCHEMA, value);
                break;
            case ARRAY:
                newValue = Values.convertToList(Schema.STRING_SCHEMA, value);
                break;
            case MAP:
                newValue = Values.convertToMap(Schema.STRING_SCHEMA, value);
                break;
            case STRUCT:
            case BYTES:
                fail("unexpected schema type");
                break;
        }
        Schema newSchema = Values.inferSchema(newValue);
        return new SchemaAndValue(newSchema, newValue);
    }
Test parsing distinct number-like types (strings containing numbers, and logical Decimals) in the same list
The parser does not convert Numbers to Decimals, or Strings containing numbers to Numbers automatically.
connect/api/src/test/java/org/apache/kafka/connect/data/ValuesTest.java