我有下面的CSV文件格式:
| 标题|学生姓名|学生ID|
| --|--|--|
| 科学|'詹姆斯','琼斯'|'JA002','JO101'|
我想把它转换成下面的JSON格式:
[{
"title": "Science",
"students":[
{
"studentname":"John",
"studentid":"JO12"
},
{
"studentname":"James",
"studentid":"JA23"
}
]
}]
如何在CSV中拆分学生名和学生ID,并使用Talend Open Studio for Data Integration将其转换为上述JSON格式?
2条答案
按热度按时间cnh2zyt31#
如果不需要转换,您应该能够执行以下操作:
如果需要一些转换,您可能需要执行以下操作:
nbysray52#
你有两个问题要解决:首先,分割数据,使列表studentNames和studentIds的第N个元素匹配:你可以使用tNormalize和tMap来实现:
1.只需在studentNames字段中用逗号分隔即可。如果你有2个studentNames,它将在输出中创建2行(而在输入中是1行)2)然后在tMap中有点棘手,你可以使用split方法创建一个数组字符串,并为每个名字
访问“studentId”列表中的第N个元素
然后你必须在输出中构建JSON,我认为这对于tWriteJsonFields组件来说是相当困难的(这是可行的,但我不太喜欢这个组件)。你有两个嵌套数组,用tWriteJson构建可能会很麻烦。
我使用tJavaFlex和JSONArray/JSONObject对象实现了这一点,tJavaFlex正好位于tMap之后。
不要忘记在tjavaflex的高级设置中导入类