当前位置: 首页 > 知识库问答 >
问题:

BeanIO定长记录中的键值映射

于鸿博
2023-03-14

我有以下关于固定长度数据文件的规范(参见第4页的记录-C类型规范)

public class RecordC{

    private List<Pair<String, String>> table = new ArrayList<>(MAX_TABLE_SIZE); //I don't want to use Map **yet**

}
    <record name="RECORD_C" class="it.csttech.ftt.data.beans.ftt2017.RecordC" order="3" minOccurs="1" maxOccurs="1" maxLength="2000">
        <field name="tipoRecord" rid="true" at="0" ignore="true" required="true" length="1" lazy="true" literal="C" />

        <field name="cfContribuente" at="1" length="16" align="left" trim="true" lazy="true" />
        <field name="progressivoModulo" at="17" length="8" padding="0" align="right" trim="true" lazy="true" />
        <field name="spazioDisposizioneUtente" at="25" length="3" align="left" trim="true" lazy="true" />
        <field name="spazioUtente" at="53" length="20" align="left" trim="true" lazy="true" />

        <field name="cfProduttoreSoftware" at="73" length="16" align="left" trim="true" lazy="true" />

        <segment name="table" collection="list" lazy="true" class="org.apache.commons.lang3.tuple.ImmutablePair">
            <field name="key" type="java.lang.String" at="0" length="8" trim="true" lazy="true" setter="#1" />
            <field name="value" type="java.lang.String" at="8" length="16" trim="true" lazy="true" setter="#2" />
        </segment>

        <field name="terminatorA" at="1897" length="1" rid="true" literal="A" ignore="true" />
    </record>

问题是:我如何在BeanIO中声明重复的固定长度字段?

共有1个答案

南宫勇军
2023-03-14

通过删除RecordC规范中的所有at属性,我目前已经解决了解封问题。正如我所发现的,“at”属性对记录是绝对的,而不是相对于重复段。然而,这迫使我在解组中添加一些忽略的字段,而代价只是一些ignore

一旦我有了数据,我就会针对官方控制器测试编组

 类似资料:
  • 我有一个Web应用程序,它的日志非常多。我们为每个请求线程实现了对的调用,以便能够在日志中跟踪用户。 日志消息可以如下所示: 现在的问题是,大多数情况下,不存在当前用户,并且我们不能使用上面日志示例中的字段。因此,它将看起来像这样: 有没有办法不写MDC密钥 我希望它看起来像这样,如果没有找到MDC值: 以上(MDC)示例配置如下:

  • 假设我们有一个键-值映射的数据结构,其中键本身也是一个键-值映射。例如: 现在,假设我们要查询此映射中与键的某个键值子集匹配的所有顶级键/值。示例: 我们的查询是“给我所有key值,其中key包含,它将返回第一个和第三个值将返回所有同时具有和的键值,生成第二个值。显然,我们可以在每一个查询的完整地图中进行搜索,但我正在寻找比这更高效的方法。 我四处查看了一下,但是找不到一个高效、易用的C解决方案。

  • 我正在尝试访问record2中的“AccountNumber”字段的数据作为“属性”。文件格式为平面文件(format=“fixedlength”)。请帮帮我。 示例数据:

  • 我有一个需求,我需要将包含可变长度记录的文件转换为固定长度记录。这是一个来自大型机的文件。 因为我不能访问大型机上的文件,所以我需要一个示例可变长度记录文件和一种转换为固定长度记录的方法。 我对这种文件是完全陌生的。但是如果我知道如何将这些可变长度的记录映射到固定长度的记录,我可以用Java编码。 这就是我的字段的位置: 所以我期待这样的输出:

  • 我正在使用骆驼beanio组件对文件内部的数据进行封送和解封。