@Override
    public Set<ConfigOption<?>> optionalOptions() {
        Set<ConfigOption<?>> options = new HashSet<>();

        // for text options
        options.add(TextFormatOptions.CHARSET);
        options.add(TextFormatOptions.FAIL_ON_MISSING_FIELD);
        options.add(TableFormatOptions.IGNORE_ERRORS);
        options.add(TextFormatOptions.TIMESTAMP_FORMAT);
        options.add(TextFormatOptions.MAP_NULL_KEY_MODE);
        options.add(TextFormatOptions.MAP_NULL_KEY_LITERAL);

        // for json ObjectMapper
        options.add(JsonFormatOptions.AUTO_CLOSE_SOURCE);
        options.add(JsonFormatOptions.ALLOW_COMMENTS);
        options.add(JsonFormatOptions.ALLOW_YAML_COMMENTS);
        options.add(JsonFormatOptions.ALLOW_UNQUOTED_FIELD_NAMES);
        options.add(JsonFormatOptions.ALLOW_SINGLE_QUOTES);
        options.add(JsonFormatOptions.ALLOW_UNQUOTED_CONTROL_CHARS);
        options.add(JsonFormatOptions.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER);
        options.add(JsonFormatOptions.ALLOW_NUMERIC_LEADING_ZEROS);
        options.add(JsonFormatOptions.ALLOW_NON_NUMERIC_NUMBERS);
        options.add(JsonFormatOptions.ALLOW_MISSING_VALUES);
        options.add(JsonFormatOptions.ALLOW_TRAILING_COMMA);
        options.add(JsonFormatOptions.STRICT_DUPLICATE_DETECTION);
        options.add(JsonFormatOptions.IGNORE_UNDEFINED);
        options.add(JsonFormatOptions.INCLUDE_SOURCE_IN_LOCATION);

        return options;
    }
Table format factory for providing configured instances of JSON to RowData {@link
SerializationSchema} and {@link DeserializationSchema}.
inlong-sort/sort-formats/format-rowdata/format-rowdata-json/src/main/java/org/apache/inlong/sort/formats/json/JsonFormatFactory.java