如何用Talend Open Studio for Data Integration将指定CSV转目标JSON
使用Talend Open Studio实现CSV转指定JSON格式
1. 读取CSV文件
- 拖入
tFileInputDelimited组件到工作区,配置文件路径、编码等基础参数。 - 针对CSV字段值带单引号的情况,在组件高级设置里,将字段的引号字符设为
',读取时会自动剥离包裹的单引号,得到James,Jones、JA002,JO101这类干净的分隔字符串。
2. 拆分字段生成多行学生数据
- 拖入
tSplitRow组件并与tFileInputDelimited相连。 - 配置拆分规则:
- 选择
studentName字段,设置分隔符为,,生成新列split_studentName; - 选择
studentID字段,同样用,分隔,生成新列split_studentID; - 勾选生成行选项,让每个拆分后的子项单独生成一行,同时保留
title字段的原值。
- 选择
3. 构造嵌套的学生数组结构
- 拖入
tMap组件连接tSplitRow的输出。 - 在
tMap中配置映射逻辑:- 保留输入的
title字段; - 创建名为
students的输出结构,类型设置为List; - 在
students列表内添加两个子字段:studentname映射到split_studentName,studentid映射到split_studentID; - 按
title字段分组,确保同一课程的所有学生被归集到同一个students数组中。
- 保留输入的
4. 输出目标JSON格式
- 拖入
tFileOutputJSON组件连接tMap的输出。 - 配置输出参数:
- 设置输出文件的路径和名称;
- 勾选输出为数组选项,保证最终JSON是数组格式;
- 调整字段映射,让
title作为顶层字段,students作为嵌套数组字段,匹配目标格式要求。
最终验证
运行作业后,输出的JSON示例如下:
[{"title": "Science","students":[{"studentname":"James","studentid":"JA002"},{"studentname":"Jones","studentid":"JO101"}]}]
内容的提问来源于stack exchange,提问作者msangel
相关产品推荐
相关产品推荐

