Json 尝试为固定长度文件构建解析器

Json 尝试为固定长度文件构建解析器,json,apache-camel,pojo,jsonschema,fixed-length-record,Json,Apache Camel,Pojo,Jsonschema,Fixed Length Record,因此,我试图构建一个解析器,它基本上接收一个固定长度的文件,其中包含多个由换行符分隔的记录(每个记录都有可变数量的重复段),并将其解析为POJO。然后,它应该将POJO写入JSON文档,并将其作为文档插入MongoDB集合(每个固定长度文件的集合;这里最初的想法是我可以将创建的JSON导入db,但我不确定这是否更高效) 但是,解析器还应该能够获取某种映射csv类型的文件,该文件定义了固定长度文件的字段名+长度。实际上,这应该允许解析器在给定映射文件的情况下解析任何固定长度的文件 我目前的想法:

因此,我试图构建一个解析器,它基本上接收一个固定长度的文件,其中包含多个由换行符分隔的记录(每个记录都有可变数量的重复段),并将其解析为POJO。然后,它应该将POJO写入JSON文档,并将其作为文档插入MongoDB集合(每个固定长度文件的集合;这里最初的想法是我可以将创建的JSON导入db,但我不确定这是否更高效)

但是,解析器还应该能够获取某种映射csv类型的文件,该文件定义了固定长度文件的字段名+长度。实际上,这应该允许解析器在给定映射文件的情况下解析任何固定长度的文件

我目前的想法:

  • 考虑使用ApacheCamel处理从固定长度到POJO(BeanIO组件)的数据解组以及POJO到JSON的编组

  • 解析CSV以获取字段名和字段长度。找到一些方法用这些信息定义POJO和JSON模式(为了简单起见,我假设我也可以从这个csv中提取字段的数据类型)

  • 我需要什么帮助:

  • 有没有办法从CSV中提取的数据生成POJO/类定义

  • 还可以从CSV生成某种JSON模式来封送POJO吗

  • 谢谢。当我思考这个问题时,可能会有更多的问题,但这就是我现在所拥有的

    camel中的数据格式将帮助您在CSV文件和POJO中的记录之间编写映射。您无法从CSV文件生成POJO类,只能手动生成

    创建映射文件后,可以按如下方式处理文件:

    <dataFormats>
      <beanio id="myBeanio" mapping="org/apache/camel/dataformat/beanio/mappings.xml" streamName="employeeFile"/>
    </dataFormats>
    .....
    <from uri="file:location"/>
    <unmarshal ref="myBeanio"/>
    <bean ref="myActionBean" method="processRecords"/>
    ....
    
    
    .....
    ....
    
    camel中的数据格式将帮助您编写CSV文件和POJO中记录之间的映射。您无法从CSV文件生成POJO类,只能手动生成

    创建映射文件后,可以按如下方式处理文件:

    <dataFormats>
      <beanio id="myBeanio" mapping="org/apache/camel/dataformat/beanio/mappings.xml" streamName="employeeFile"/>
    </dataFormats>
    .....
    <from uri="file:location"/>
    <unmarshal ref="myBeanio"/>
    <bean ref="myActionBean" method="processRecords"/>
    ....
    
    
    .....
    ....
    
    是,问题1可能使用


    是的,问题1可以使用


    CSV没有数据类型,一切都是字符串,不像Excel或XML那样可以携带元数据信息。所有这些都可以通过Camel在一定程度上实现。CSV没有数据类型,一切都是字符串,不像Excel或XML那样可以携带元数据信息。所有这些都可以在一定程度上通过Camel实现。