@Override
            public Object convert(Object dbzObj, Schema schema) {

                if (dbzObj instanceof Struct) {
                    ConnectSchema connectSchema = (ConnectSchema) schema;
                    List<Field> fields = connectSchema.fields();

                    Map<String, Object> data = new HashMap<>();
                    Struct struct = (Struct) dbzObj;

                    for (Field field : fields) {
                        String fieldName = field.name();
                        Object fieldValue = struct.getWithoutDefault(fieldName);
                        Schema fieldSchema = schema.field(fieldName).schema();
                        String schemaName = fieldSchema.name();
                        if (schemaName != null) {
                            fieldValue = getValueWithSchema(fieldValue, schemaName);
                        }
                        if (fieldValue instanceof ByteBuffer) {
                            // binary data (blob or varbinary in mysql) are stored in bytebuffer
                            // use utf-8 to decode as a string by default
                            fieldValue = new String(((ByteBuffer) fieldValue).array());
                        }
                        data.put(fieldName, fieldValue);
                    }

                    GenericRowData row = new GenericRowData(1);
                    row.setField(0, data);
                    return row;
                }

                return constructDdlRow(dbzObj);

            }
Creates a runtime converter which assuming input object is not null.
inlong-sort/sort-flink/cdc-base/src/main/java/org/apache/inlong/sort/cdc/base/debezium/table/RowDataDebeziumDeserializeSchema.java