Maps 使用beanIo将平面文件转换为json
我正在尝试使用beanIo到json解析一个固定长度的平面文件 代码: 它为找到的每个记录生成单独的json对象 参考地点: 以下是我的要求:Maps 使用beanIo将平面文件转换为json,maps,gson,bean-io,Maps,Gson,Bean Io,我正在尝试使用beanIo到json解析一个固定长度的平面文件 代码: 它为找到的每个记录生成单独的json对象 参考地点: 以下是我的要求: 我想要一个统一的Json文件 如果记录重复,则应形成json数组 我将非常感谢您的帮助 此答案基于OP提供的链接中的数据和pattern mapping.xml文件 数据: 标题,01012013 Robertus,Lilik,高级开发人员,“75000,00”,10012009 简,能源部,建筑师,“80000,00”,01152008 乔恩·安德森
我将非常感谢您的帮助 此答案基于OP提供的链接中的数据和
pattern mapping.xml
文件
数据:
标题,01012013Robertus,Lilik,高级开发人员,“75000,00”,10012009
简,能源部,建筑师,“80000,00”,01152008
乔恩·安德森,经理,“90000,00”,03182006
页脚,3 映射文件:
这是修改后的
模式映射.xml
文件。注意使用
元素(myGroup)将所有内容封装到单个组中,这将迫使BeanReader
一次性读取所有内容。我还将页眉
和页脚
记录的maxOccurs
更改为1(一)。此外,还向emp`记录添加了collection=“list”属性
<?xml version='1.0' encoding='UTF-8' ?>
<beanio xmlns="http://www.beanio.org/2012/03"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd">
<stream name="empData" format="csv">
<group name="myGroup" class="map">
<record name="header" class="map" ridLength="0-2" maxOccurs="1">
<field name="id" rid="true" maxOccurs="1" literal="Header" />
<field name="date" />
</record>
<record name="emp" class="map" ridLength="4-5" collection="list">
<field name="firstName" />
<field name="lastName" />
<field name="title" />
<field name="salary" type="java.math.BigDecimal" format="#,###,###,00" />
<field name="hireDate" type="java.util.Date" format="MMddyyyy" minOccurs="0" />
</record>
<record name="trailer" class="map" ridLength="2" maxOccurs="1">
<field name="id" />
<field name="count" />
</record>
</group>
</stream>
</beanio>
希望这有帮助这个答案基于OP提供的链接中的数据和pattern mapping.xml
文件
数据:
标题,01012013
Robertus,Lilik,高级开发人员,“75000,00”,10012009
简,能源部,建筑师,“80000,00”,01152008
乔恩·安德森,经理,“90000,00”,03182006
页脚,3
映射文件:
这是修改后的模式映射.xml
文件。注意使用
元素(myGroup)将所有内容封装到单个组中,这将迫使BeanReader
一次性读取所有内容。我还将页眉
和页脚
记录的maxOccurs
更改为1(一)。此外,还向
emp`记录添加了collection=“list”属性
<?xml version='1.0' encoding='UTF-8' ?>
<beanio xmlns="http://www.beanio.org/2012/03"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd">
<stream name="empData" format="csv">
<group name="myGroup" class="map">
<record name="header" class="map" ridLength="0-2" maxOccurs="1">
<field name="id" rid="true" maxOccurs="1" literal="Header" />
<field name="date" />
</record>
<record name="emp" class="map" ridLength="4-5" collection="list">
<field name="firstName" />
<field name="lastName" />
<field name="title" />
<field name="salary" type="java.math.BigDecimal" format="#,###,###,00" />
<field name="hireDate" type="java.util.Date" format="MMddyyyy" minOccurs="0" />
</record>
<record name="trailer" class="map" ridLength="2" maxOccurs="1">
<field name="id" />
<field name="count" />
</record>
</group>
</stream>
</beanio>
希望这有帮助请添加您的模式映射.xml
文件,如有必要,请添加您的模式映射.xml
文件,如有必要,请添加POJO'sThanks@nicosch,这是我能得到的最佳答案!!谢谢@nicosch这是我能得到的最好答案!!
<?xml version='1.0' encoding='UTF-8' ?>
<beanio xmlns="http://www.beanio.org/2012/03"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.beanio.org/2012/03 http://www.beanio.org/2012/03/mapping.xsd">
<stream name="empData" format="csv">
<group name="myGroup" class="map">
<record name="header" class="map" ridLength="0-2" maxOccurs="1">
<field name="id" rid="true" maxOccurs="1" literal="Header" />
<field name="date" />
</record>
<record name="emp" class="map" ridLength="4-5" collection="list">
<field name="firstName" />
<field name="lastName" />
<field name="title" />
<field name="salary" type="java.math.BigDecimal" format="#,###,###,00" />
<field name="hireDate" type="java.util.Date" format="MMddyyyy" minOccurs="0" />
</record>
<record name="trailer" class="map" ridLength="2" maxOccurs="1">
<field name="id" />
<field name="count" />
</record>
</group>
</stream>
</beanio>
myGroup: {
"trailer": {
"count": "3",
"id": "Footer"
},
"header": {
"date": "01012013",
"id": "Header"
},
"emp": [
{
"firstName": "Robertus",
"lastName": "Lilik",
"hireDate": "Oct 1, 2009 12:00:00 AM",
"title": "Senior Developer",
"salary": 7500000
},
{
"firstName": "Jane",
"lastName": "Doe",
"hireDate": "Jan 15, 2008 12:00:00 AM",
"title": "Architect",
"salary": 8000000
},
{
"firstName": "Jon",
"lastName": "Anderson",
"hireDate": "Mar 18, 2006 12:00:00 AM",
"title": "Manager",
"salary": 9000000
}
]
}