В wso2 esb как конвертировать текст / html в приложение / json - PullRequest
0 голосов
/ 01 июня 2018

В ответ wso2 esb я получаю

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

с заголовком 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

1 Ответ

0 голосов
/ 02 июня 2018

Поскольку 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>
...