在 wso2 esb 中如何将 text/html 转换为 application/json
In wso2 esb how to convert text/html to application/json
在 wso2 esb 中,我得到的响应是
{"success":true,"data":"1234"}
用header text/html所以我试着用
转换
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<property name="ContentType" scope="axis2" type="STRING" value="application/json"/>
但是我是这样的二进制形式的数据。
{
"binary": "eyJzdWNjZXNzIjp0cnVlLCJkYXRhIjoie1wicmF0ZV9oclwiOjIwLFwicmV2ZW51ZVwiOjEwMCxcIm5leHRfZGF5X3ByZWRpY3RlZFwiOjEwMH0ifQ=="
}
那么如何获取json数据
作为 text/html 的 wso2 ESB 消息生成器,在处理时将文本转换为二进制格式。
这个问题我是这样解决的
第一步-->获取payload。
脚本中介:
<script language="js"><![CDATA[var temp = mc.getPayloadXML();
mc.setProperty("RESPONSE", temp);]]></script>
第2步-->二进制转字符串。
属性 调解员:
<property expression="base64Decode(get-property('RESPONSE'))"
name="DecodeBody" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
步骤 3-->字符串到 JSON
脚本中介:
<script language="groovy"><![CDATA[
import groovy.json.*;
String s=mc.getProperty("DecodeBody");
def processed = new JsonSlurper().parseText(s.toString());
mc.setPayloadJSON(JsonOutput.toJson(processed));
]]></script>
对于我的情况,我正在调用一个端点 return text/html,并且 WSO2 在收到响应时抛出异常,所以我通过将以下条目添加到 [=14] 来解决它=].xml,每个在正确的部分:
<messageFormatter contentType="text/html"
class="org.apache.synapse.commons.json.JsonStreamFormatter"/>
<messageBuilder contentType="text/html"
class="org.apache.synapse.commons.json.JsonStreamBuilder"/>
在 wso2 esb 中,我得到的响应是
{"success":true,"data":"1234"}
用header text/html所以我试着用
转换<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<property name="ContentType" scope="axis2" type="STRING" value="application/json"/>
但是我是这样的二进制形式的数据。
{
"binary": "eyJzdWNjZXNzIjp0cnVlLCJkYXRhIjoie1wicmF0ZV9oclwiOjIwLFwicmV2ZW51ZVwiOjEwMCxcIm5leHRfZGF5X3ByZWRpY3RlZFwiOjEwMH0ifQ=="
}
那么如何获取json数据
作为 text/html 的 wso2 ESB 消息生成器,在处理时将文本转换为二进制格式。
这个问题我是这样解决的
第一步-->获取payload。 脚本中介:
<script language="js"><![CDATA[var temp = mc.getPayloadXML();
mc.setProperty("RESPONSE", temp);]]></script>
第2步-->二进制转字符串。 属性 调解员:
<property expression="base64Decode(get-property('RESPONSE'))"
name="DecodeBody" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
步骤 3-->字符串到 JSON 脚本中介:
<script language="groovy"><![CDATA[
import groovy.json.*;
String s=mc.getProperty("DecodeBody");
def processed = new JsonSlurper().parseText(s.toString());
mc.setPayloadJSON(JsonOutput.toJson(processed));
]]></script>
对于我的情况,我正在调用一个端点 return text/html,并且 WSO2 在收到响应时抛出异常,所以我通过将以下条目添加到 [=14] 来解决它=].xml,每个在正确的部分:
<messageFormatter contentType="text/html"
class="org.apache.synapse.commons.json.JsonStreamFormatter"/>
<messageBuilder contentType="text/html"
class="org.apache.synapse.commons.json.JsonStreamBuilder"/>