在 wso2 esb 中如何将 text/html 转换为 application/json

阿肖克

在 wso2 esb 响应中,我得到的是

{"success":true,"data":"1234"}

带有标题文本/ html 所以我试图用

<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<property name="ContentType" scope="axis2" type="STRING" value="application/json"/>

但我是这样的二进制形式的数据。

    {
    "binary": "eyJzdWNjZXNzIjp0cnVlLCJkYXRhIjoie1wicmF0ZV9oclwiOjIwLFwicmV2ZW51ZVwiOjEwMCxcIm5leHRfZGF5X3ByZWRpY3RlZFwiOjEwMH0ifQ=="
}

那么如何获取json数据

阿肖克

由于 wso2 ESB 消息生成器用于 text/html 在处理时将文本转换为二进制格式。

我是这样解决这个问题的。

步骤 1--> 获取有效载荷。脚本中介:

<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>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章