Azure APIM:将 JSON 响应转换为自定义 XML 格式

Azure APIM : Convert JSON Response to Customized XML Format

我有一个要求,我想将 JSON 响应(对象数组)转换为自定义的 XML 格式,以便我现有的代码可以解析它。

我知道有一个名为 <json-to-xml /> 的 Azure 转换策略,但无法对其进行自定义。

示例 JSON 响应:

{
    "data":[
               {"a":1,"b":2},
               {"a":3,"b":4}
            ],
    "param2": "Success",
    "param3": "true"
 }

所需XML格式:

<result>
 <sub-res>
  <res x="a" y=1>
  <res x="b" y=2>
 </sub-res>
 <sub-res>
  <res x="a" y=3>
  <res x="b" y=4>
 </sub-res>
</result>

我也尝试过使用液体模板,但没有成功。需要这方面的指导或指点。

为了这个要求,我创建了一个 api 响应 {"data":[{"a":1,"b":2},{"a":3,"b":4}]} 来模拟你的情况。

然后我首先在 APIM 策略中使用 <json-to-xml>,在 <json-to-xml> 策略之后响应将转换为 xml,如下所示:

<Document>
    <data>
        <a>1</a>
        <b>2</b>
    </data>
    <data>
        <a>3</a>
        <b>4</b>
    </data>
</Document>

之后,使用xslt将xml转换成你想要的

以下是我的APIM中的所有政策,供您参考:

APIM 结果如你所愿: