使用Talend Open Studio for Data Integration将CSV转换为JSON

lc8prwob  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(76)

我有下面的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格式?

cnh2zyt3

cnh2zyt31#

如果不需要转换,您应该能够执行以下操作:

tFileInputDelimited --> tFileOutputJSON

如果需要一些转换,您可能需要执行以下操作:

tFileInputDelimited --> tWriteJSONField
nbysray5

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的高级设置中导入类

import net.minidev.json.JSONObject;
import net.minidev.json.JSONArray;

相关问题