REST-APIのjson-request-replyシナリオでデータを操作しようとしています。WSO2 ESBでネイティブJsonを操作する方法は?
私の問題を単純化するため、すべての 'b'文字をペイロード内の 'd'に置き換えたいとしましょう。
json-dataでネイティブに作業し、最初にデータをXMLに変換しない方法はありますか?
OutSequenceに入れるカスタムクラスのメディエータを作成しようとしていますが、ペイロードをXMLとして扱うMessageContextにしかアクセスできないため、問題が発生しています。
問題は、jsonをXMLとの間で変換できないことです。
それは、その構造内でこの部分を持っている:
"Destination": {
"name": "abc",
"type": "ST",
"$": "\n"
}
「$」プロパティが有効なJSONですが、WSO2 ESBは常にそのMessageContextに内部のデータをXMLとして扱うので、タグにそのプロパティを変換することはできません私は私のクラスメディエーターの内側
MessageContext.getEnvelope().getBody()
を行うたび明らかに、そう、応答は次のとおりです。
<Destination>
<name>abc</name>
<type>ST</type>
</Destination>
$プロパティがありません。
私はメッセージビルダー使用しています:(通常のケースでは、コンテンツを通過するにはorg.apache.synapse.commons.json.JsonStreamFormatter
:org.apache.synapse.commons.json.JsonStreamBuilderとフォーマッタをそれ以外の場合は、XMLからJSONへの処理ステップで失敗します)。しかし、ネイティブのJSON(またはネイティブのString?)としてデータを操作し、おそらくInputStreamを取得してそこからデータを操作できる方法が必要ですか?しかし、私はMessage ContextからInputStreamに到達する方法を見つけることができませんか?