WSO2 ESB V4.9.0を使用して、指定されたエンドポイントのプロキシサービスを作成しました。このプロキシサービスは、変換されたJSON配列を返す必要があります。 foreachメディエータとpayloadfactoryをoutシーケンスでプロキシサービスに設定し、何が起きているのかを知るためにログステートメントを設定しました。 結果として、個々の配列要素はそれぞれ期待通りに変換されますが、ドキュメントの意味でループ の最後に個々の要素が単一の配列にマージされることはありません。その結果、最終要素のみが返されます。foreachメディエータを使用してWSO2 ESBでJSON配列を変換
私が見ることができるのは、私が見てきた例のほとんどが、単なる配列ではなく、配列rathetを持つ要素だけではないということです。これが可能なら誰でも知っていますか?
オリジナルエンドポイントは、このような何かを返します。
[
{"id": "1",
"type": "object",
"name": "first",
"bounds":"[[-0.256,51.531],[-0.102,51.656]]",
"displayName": "first record"},
{"id": "2",
"type": "object",
"name": "second",
"bounds":"[[-0.256,51.531],[-0.102,51.656]]",
"displayName": "second record"},
..etc...
]
プロキシサービスから
必要なリターンはこのようなものです:
[
{"name": "first record",
"bounds":"[[-0.256,51.531],[-0.102,51.656]]"},
{"name": "second record",
"bounds":"[[-0.256,51.531],[-0.102,51.656]]"},
..etc...
]
このようなプロキシから
実際のリターン:の
{"name": "first record",
"bounds":"[[-0.256,51.531],[-0.102,51.656]]"}
設定プロキシはここにあります:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="newfeed_v2"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log/>
</inSequence>
<outSequence>
<log level="full">
<property name="MESSAGE" value="FIRST"/>
</log>
<foreach id="foreach_1" expression="//jsonArray/jsonElement">
<sequence>
<payloadFactory media-type="json">
<format>{
"name" : "$1",
"bounds" : "$2"
}</format>
<args>
<arg evaluator="json" expression="$.displayName"/>
<arg evaluator="json" expression="$.bounds"/>
</args>
</payloadFactory>
<log level="full">
<property name="MESSAGE" value="ENDLOOP"/>
</log>
</sequence>
</foreach>
<log level="full">
<property name="MESSAGE" value="LAST"/>
</log>
<log/>
<send/>
</outSequence>
<endpoint>
<address uri="https://api.backend.com"/>
</endpoint>
</target>
<description/>
</proxy>
これは私にもう少し感謝してくれました。 – Dohnomis