CA API 网关 XML 列表响应 Json

CA API Gateway XML List Response to Json

我在 CA API 网关中将我的响应 XML 转换为 Json 时遇到问题。

我的xml喜欢;

           <Result>
               <MetaDataItem>
                  <ComponentType>TEXTBOX</ComponentType>
                  <DataType>System.String</DataType>
               </MetaDataItem>
               <MetaDataItem>
                  <ComponentType>DATETIME</ComponentType>
                  <DataType>System.String</DataType>
               </MetaDataItem>
           <Result>

当我尝试使用 xpath 获取内部子元素时; 响应就像;

{
    "result":{
        "resultCode":"1000",
        "resultMessage":""
        "result":"TEXTBOXSystem.StringDATETIMESystem.String,
     }
}

它只是 returns 只是第一个 MetaDataItems 值,因为 string.I 无法将此结果字符串转换为 json。

我想要结果json喜欢;

"MetaDataItem": [
            {
                "ComponentType":"TEXTBOX",
                "DataType" : "System.String"
            }
           ,{
                "ComponentType":"DATETIME",
                "DataType" : "System.String"
            }
            
        ]   

有人知道 CA API 网关 XML 到 JSON 转换的想法吗?

我不知道那个环境,但如果你只有 XPath 2.0,那么

concat('[', 
       string-join(
           for $item in //MetaDataItem 
           return concat('{', string-join(for $c in $item/* return concat('"', local-name($c), '":"', $c ,'"'), ', '), '}'), ', '), ']')

因为 XPath 2.0 表达式应该给出字符串 [{"ComponentType":"TEXTBOX", "DataType":"System.String"}, {"ComponentType":"DATETIME", "DataType":"System.String"}],也许如果您另外将“变量前缀”设置为 MetaDataItem 结果更接近您想要的结果。