wso2 - WSO2 EI 使用 Json 有效负载构造 XML 请求
问题描述
如何使用以下 JSON 构建 XML 有效负载:
{
"Request": {
"lineCode": "00060139A",
"lineSerial": "1",
"lineCurrency": "MNT",
"revolvingLine": "Y",
"lineExpiryDate": "2019-12-25",
"availabilityFlag": "Y",
"limitAmount": "1000.00",
"nettingRequired": "N",
"unAdvised": "N",
"liaBBr": "101",
"branchId" : "101",
"lmtAmtBasics": "L",
"funded": "N",
"liaBID": "l",
"description": "desc",
"udfDetails": [
{
"fieldName": "BONEV",
"fieldValue": "0"
},
{
"fieldName": "test",
"fieldValue": "1"
}
]
}
}
它包含 json 数组,udfDetails,
我想在下面构建 xml,我尝试了 iterate 和 foreach 但它通过 udf 参数循环了整个请求(在这种情况下为 2 次):
<Cust-Account-Full>
<SWEEP_IN>N</SWEEP_IN>
<SWEEP_OUT>N</SWEEP_OUT>
<SPDANLSYS>N</SPDANLSYS>
<AUTOPROVREQ>N</AUTOPROVREQ>
<!--FACILITY SALGAH-->
<LINEIDTSLIST>01110764A1</LINEIDTSLIST>
<UDFDETAILS>
<FLDNAM>TERM_DEPOSIT_LINK</FLDNAM>
<FLDVAL>No</FLDVAL>
</UDFDETAILS>
<UDFDETAILS>
<FLDNAM>Bonev</FLDNAM>
<FLDVAL>0</FLDVAL>
</UDFDETAILS>
<UDFDETAILS>
<FLDNAM>test</FLDNAM>
<FLDVAL>1</FLDVAL>
</UDFDETAILS>
</Cust-Account-Full>
解决方案
您可以部署以下代理将上述 JSON 转换为 XML。
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="jsonToXmlProxy"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="http,https">
<target>
<inSequence>
<property name="messageType" scope="axis2" value="application/xml"/>
<respond/>
</inSequence>
</target>
<description/>
</proxy>
messageType属性可用于 XML 到 JSON 和 JSON 到 XML 的转换。下面的示例将 XML 转换为 JSON。
<property name="messageType" scope="axis2" value="application/xml"/>
当您调用jsonToXmlProxy时,您将收到以下响应。
<jsonObject>
<Request>
<lineCode>00060139A</lineCode>
<lineSerial>1</lineSerial>
<lineCurrency>MNT</lineCurrency>
<revolvingLine>Y</revolvingLine>
<lineExpiryDate>2019-12-25</lineExpiryDate>
<availabilityFlag>Y</availabilityFlag>
<limitAmount>1000.00</limitAmount>
<nettingRequired>N</nettingRequired>
<unAdvised>N</unAdvised>
<liaBBr>101</liaBBr>
<branchId>101</branchId>
<lmtAmtBasics>L</lmtAmtBasics>
<funded>N</funded>
<liaBID>l</liaBID>
<description>desc</description>
<udfDetails>
<fieldName>BONEV</fieldName>
<fieldValue>0</fieldValue>
</udfDetails>
<udfDetails>
<fieldName>test</fieldName>
<fieldValue>1</fieldValue>
</udfDetails>
</Request>
</jsonObject>
推荐阅读
- python - Process a list with a limted number of threads
- asp.net-web-api - Bearer token: The signature is invalid - Default ASP.NET Core 2.1 Web Api template published to Azure
- python - pandas replace NaNs with modus of another column based on second column
- graphql - 如何将变量传递给graphql查询?
- c# - 基于 RadioButtons 的 C# WPF 过滤器组合框
- python - 如何使用nose_parameterized参数化setUp方法
- reactjs - How to export function and import react hooks
- php - PHP file upload with multiple post values
- c# - FlowLayoutPanel VerticalScroll 怎么用?
- javascript - how to show user's “last seen at” time using the seconds received from the server