2013-01-18 77 views
2

我想將我的JSON作爲對象傳遞給WSO2 ESB。 我得到JSON是這樣的:如何轉換WSO2中的JSON ESB

'{FIELDNAME":"NAME",FIELDVALUE:"KISHORE"}' 

這JSON我需要通過我的ESB作爲一個動態列。但它接受像JSON {"NAME":"KISHORE"}。我如何從JSON轉換爲WSO2 ESB中的低於一個。如果我超過一個,我無法通過代理。如果我得到一個以下,我會通過這樣的(//name/child::text())然後我會得到價值作爲「KISHORE」我試着與ENRICH調解員,但它不工作。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="test_dynamic" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> 

<target> 
    <inSequence> 
     <enrich> 
      <source type="body" clone="true"/> 
      <target type="property" property="RM"/> 
     </enrich> 
     <property name="RM" expression="//fieldname/child::text()" scope="default" type="STRING"/> 
     <log level="custom"> 
      <property name="r_no" expression="get-property('R_no')"/> 
      <property name="r_value" expression="get-property('R_value')"/> 
      <property name="emp_d" expression="get-property('emp')"/> 
      <property name="RM" expression="get-property('RM')"/> 
     </log> 
     <log level="full"/> 
    </inSequence> 
</target> 
<description></description> 

</proxy> 

ANS:請求時,信封:

<?xml version='1.0' encoding='utf-8'?> 
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
    <soapenv:Body><fieldname>e_no</fieldname><fieldvalue>5</fieldvalue></soapenv:Body> 
</soapenv:Envelope> 
+0

我的查詢是這樣的(select * from emp where col = ?;列會像動態添加select * from emp where?= ?;我將如何處理wso2 dss或wso2 esb – Faisal

回答

0

我想你應該發送JSON消息是這樣的:

'{"RECORD":{FIELDNAME":"NAME",FIELDVALUE:"KISHORE"}}' 

然後在WSO2的 「屬性」 調解員獲得的價值ESB,就像

<property name="FIELDNAME" expression="//FIELDNAME/text()" scope="default" type="STRING"/> 
<property name="FIELDVALUE" expression="//FIELDVALUE/text()" scope="default" type="STRING"/>