如何使用 Liquid 在 Azure 逻辑应用程序中从 xml 转换为 json

How to Transform from xml to json in Azure Logic apps using Liquid

我正在使用转换 XML 到 JSON。 这是我在 XML

中的请求正文
<Root>
<test>
    <column1>value1</column1>
    <column2>value2</column2>
</test>
<test>
    <column1>value1</column1>
    <column2>value2</column2>
</test>
</Root>

这是我的液体贴图

{
    "test": [
        {% for data in Root.test %}
        {
            "column1": "{{data.column1}}",
            "column2": "{{data.column2}}",
        }
        {% endfor %}
    ]
}

在 运行 运行逻辑应用程序时出现解析错误:

{
  "Code": "IncorrectLiquidTransformOutputType",
  "Message": "An error occurred while converting the transformed value to JSON. The transformed value is not a valid JSON. 'After parsing a value an unexpected character was encountered: {. Path 'test[0]'"
}

但是当我 运行 液体沙箱中的相同代码运行良好时。我可否知道?逻辑应用程序的问题是什么。

我在身边测试过,下面提供我的液体图供大家参考:

{
    "test": [
        {% for data in content.Root %}
        {
            "column1": "{{data.column1}}",
            "column2": "{{data.column2}}"
        },
        {% endfor %}
    ]
}

运行 这个液体贴图,效果很好(如下图所示)

希望对你有帮助~

我将总结已经提供的 answers/comments,因为我在第一次检查接受的答案时没有看到问题!

此类错误可能是由于缺少 JSON 对象文字末尾的逗号引起的,您希望在转换后的输出中将其作为数组中的元素重复。

失败

[
    {% for data in Root.test %}
    {
        "column1": "{{data.column1}}",
        "column2": "{{data.column2}}",
    }
    {% endfor %}
]

有效

[
    {% for data in Root.test %}
    {
        "column1": "{{data.column1}}",
        "column2": "{{data.column2}}",
    },
    {% endfor %}
]