0
JSONArrayをJsonPathExpressionで分割しましたが、結果は各JSONの二重引用符をすべて削除しました。ここに私のRouteBuilderがあります。Apache Camel split JSONArrayは二重引用符を削除します
from("timer:scheduler?repeatCount=1")
.to("http:localhost:8901/rest/getData")
.split(new JsonPathExpression("$.[*]"))
.process(new Processor() {
@java.lang.Override
public void process(Exchange exchange) throws Exception {
String input = exchange.getIn().getBody(String.class);
exchange.getIn().setBody(input);
}
})
.unmarshal().json(JsonLibrary.Jackson, Map.class)
.log("${body}");
私はちょうどジャクソンを使用してこれらのJSONを非整列化したいのですが、あなたが知っているかもしれないとして、ジャクソンは二重引用符なしでそれらのJSONの解析を行いません、はい、私はジャクソンが二重引用符なしで解析することが可能かもしれませんが、私はJSONを好みますそれを持っている。また、:
を=
に変更します。
REST呼び出しの応答は次のとおりです。
[
{
"v_KDKANWIL": null,
"v_GJJ": "CRJ"
},
{
"v_KDKANWIL": "002",
"v_GJJ": "CRJ"
}
]
分割して処理した後は、最初のJSONと同じようになります。
{
v_KDKANWIL=null,
v_GJJ=CRJ
}
私は文字列型を使用して新しいボディを設定しているので、スプリットだけでなくプロセッサでも疑わしいです。
ありがとうございます。
EDIT
ああ、愚かな私は、文字列が、地図ので、これではありません。
String input = exchange.getIn().getBody(String.class);
になります。
Map input = exchange.getIn().getBody(String.class);
いくつかの即時の支援を提供することができる、このコードスニペットをいただき、ありがとうございます。適切な説明は、なぜこれが問題の良い解決策であるのかを示すことによって、その教育的価値を大幅に向上させるでしょう(https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)。類似しているが同一ではない質問を持つ将来の読者にとって、より有用なものにする。説明を追加するためにあなたの答えを編集し、どのような制限と前提が適用されるかを示してください。 – basvk