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
结果更接近您想要的结果。
我在 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
结果更接近您想要的结果。