Spring DelimitedLineTokenizer,如何禁用De-Escaping Double引号

发布于 2025-02-12 04:59:09 字数 1453 浏览 0 评论 0原文

org.springframework.batch.item.file.transform.delimitedlineTokenizer,默认情况下,“ de-escapes”字段。这意味着,它将两个双引号替换为值。如何停止这种行为?我需要这个,因为程序中有一个下一个delimitedlinetokenizer误解了这个单个双引号。 我该怎么做?无法从其他帖子中得到答案。

我确实在多行上具有一个值,因为我无法从iSquotecharacter中返回false,正如其他一些帖子中所述。这是代码。

<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean
                    class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    <property name="delimiter" ref="delimiter-#{jobExecutionContext['DELIMITER']}" />
                    <property name="names"
                        value="#{jobExecutionContext['COLUMNS_NAME_LOOKUP']}" />

                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="com.tsys.enterprise.converters.flexible.delimited.file.FlexibleDelimiterBasedFileParserFieldSetMapper"
                    scope="step">
                    <aop:scoped-proxy/>
                    <property name="targetType" value="com.tsys.enterprise.converters.flexible.delimited.file.vo.DataHolder"/>
                    
                    <property name="udfLabel1Label" value="#{jobExecutionContext['UDF1_LABEL']}"/>
                    </bean>

org.springframework.batch.item.file.transform.DelimitedLineTokenizer, by default, "de-escapes" the fields. That means, it replaces two double quotes into one in the value. How can I stop this behavior? I need this because there is a next DelimitedLineTokenizer in the program misinterpreting this single double quote.
How can I do it? Could not get an answer from other posts.

I do have feature one value on multiple lines, because of that I cannot return false from isQuoteCharacter, as mentioned in some other posts. Here is the code.

<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean
                    class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    <property name="delimiter" ref="delimiter-#{jobExecutionContext['DELIMITER']}" />
                    <property name="names"
                        value="#{jobExecutionContext['COLUMNS_NAME_LOOKUP']}" />

                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="com.tsys.enterprise.converters.flexible.delimited.file.FlexibleDelimiterBasedFileParserFieldSetMapper"
                    scope="step">
                    <aop:scoped-proxy/>
                    <property name="targetType" value="com.tsys.enterprise.converters.flexible.delimited.file.vo.DataHolder"/>
                    
                    <property name="udfLabel1Label" value="#{jobExecutionContext['UDF1_LABEL']}"/>
                    </bean>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文