private FieldToRowDataConverter createNotNullConverter(LogicalType type) {
        switch (type.getTypeRoot()) {
            case NULL:
                return origStr -> null;
            case BOOLEAN:
                return origStr -> Boolean.parseBoolean(origStr.trim());
            case TINYINT:
                return origStr -> Byte.parseByte(origStr.trim());
            case SMALLINT:
                return origStr -> Short.parseShort(origStr.trim());
            case INTEGER:
            case INTERVAL_YEAR_MONTH:
                return orig -> Integer.parseInt(orig.trim());
            case BIGINT:
            case INTERVAL_DAY_TIME:
                return orig -> Long.parseLong(orig.trim());
            case DATE:
                return this::convertToDate;
            case TIME_WITHOUT_TIME_ZONE:
                return this::convertToTime;
            case TIMESTAMP_WITHOUT_TIME_ZONE:
                return this::convertToTimestamp;
            case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
                return this::convertToTimestampWithLocalZone;
            case FLOAT:
                return origStr -> Float.parseFloat(origStr.trim());
            case DOUBLE:
                return origStr -> Double.parseDouble(origStr.trim());
            case BINARY:
            case VARBINARY:
                return this::convertToBytes;
            case CHAR:
            case VARCHAR:
                return StringData::fromString;
            case DECIMAL:
                return createDecimalConverter((DecimalType) type);
            case ARRAY:
                return createArrayConverterByObjectMapper((ArrayType) type);
            case MAP:
                MapType mapType = (MapType) type;
                return createMapConverterByObjectMapper(
                        mapType.asSummaryString(),
                        mapType.getKeyType(),
                        mapType.getValueType());
            case MULTISET:
                MultisetType multisetType = (MultisetType) type;
                return createMapConverterByObjectMapper(
                        multisetType.asSummaryString(),
                        multisetType.getElementType(),
                        new IntType());
            case ROW:
                return createRowConverterByObjectMapper((RowType) type);
            case RAW:
            default:
                throw new UnsupportedOperationException("Unsupported type: " + type);
        }
    }
Creates a runtime converter which assuming input object is not null.
inlong-sort/sort-formats/format-rowdata/format-rowdata-json/src/main/java/org/apache/inlong/sort/formats/json/FieldToRowDataConverters.java