Altova MapForce:如何拆分JSON文件中的JSON对象?
在Altova MapForce中拆分OData JSON返回的用户数组解决方案
1. 确保JSON结构被正确识别
- 将API Get请求返回的JSON数据导入MapForce:可直接粘贴JSON示例到「JSON Schema Generator」,或让MapForce自动推断API返回结构。
- 确认value字段被识别为数组类型,每个用户对象下的assignedLicenses也被标记为数组。若结构识别错误,右键点击对应字段选择「Change Type」修正为数组类型。
2. 用Loop组件遍历用户数组
- 从左侧组件面板拖拽「Loop」组件到画布。
- 将JSON数据源的value字段连接到Loop组件的「Input」端口,此时Loop的「Output」端口会输出单个用户对象。
- 点击Loop组件,在属性面板确认迭代目标为数组内的每个元素。
3. 处理嵌套的assignedLicenses数组(可选)
- 若需拆分每个用户的许可证信息,在第一层Loop组件内部,再添加一个「Loop」组件。
- 将当前用户对象的assignedLicenses字段连接到内层Loop的「Input」端口,内层Loop的输出即为单个许可证对象。
4. 映射字段到输出目标
- 以输出到文本文件(CSV/TSV)为例:添加「Text File」组件,提前定义好列结构(如用户ID、名称、许可证ID等)。
- 将外层Loop输出的单个用户字段(如
id、displayName)映射到文本文件对应列;若处理嵌套许可证,把内层Loop输出的许可证字段也映射到对应列(此时每条许可证会生成一行,并关联所属用户信息)。 - 注意:输出组件必须连接Loop的输出端口,而非直接连接整个value数组,否则只会处理首个元素或无结果。
5. 调试验证
- 点击「Run」执行映射,查看输出结果。若仍无数据,检查:
- API请求是否正确返回包含多个用户的value数组(可在MapForce的「Preview」标签查看原始返回数据)。
- Loop组件的输入是否确实连接到value数组字段,而非整个JSON对象。
- 输出组件的字段映射是否正确,无遗漏或错误关联。
内容的提问来源于stack exchange,提问作者Bryant
相关产品推荐
相关产品推荐

