Azure Logic Apps中用Liquid处理XML转JSON:提取重复元素值
提取XML中同名重复元素的Liquid模板解决方案
当前你的Liquid模板仅能获取第一个<relatedcompany>的relatedncompanyid,核心问题是直接访问customer.relatedcompany只会返回集合的第一个元素,且原模板的JSON结构(用{}包裹)会导致重复键的语法错误。以下是修正后的实现:
修正后的Liquid模板
"RelatedCompanies": [ {% for customer in content.customers %} {% for company in customer.relatedcompany %} {"Id": "{{ company.relatedncompanyid }}"} {% unless forloop.last %},{% endunless %} {% endfor %} {% endfor %} ]
关键修改点
- 调整JSON结构:将原有的
{}改为[],把关联公司数据组织为数组,避免对象键重复的语法问题 - 嵌套遍历循环:新增
{% for company in customer.relatedcompany %}循环,遍历所有<relatedcompany>元素,确保每个元素的relatedncompanyid都被提取 - 修正变量拼写:原模板中的
relatedncccompanyid是拼写错误,需改为XML中的实际字段名relatedncompanyid - 处理JSON逗号:用
{% unless forloop.last %},{% endunless %}控制数组元素间的逗号,保证最终输出的JSON格式合法
输出效果(针对示例XML)
"RelatedCompanies": [ {"Id": "0070"}, {"Id": "2500"} ]
内容的提问来源于stack exchange,提问作者Redduke
相关产品推荐
相关产品推荐

