189.11. 将 JSon 数据分成子行,存为 JSon
您可以使用 jsonpath 来分割 JSon 文档,例如:
from("direct:start")
.split().jsonpath("$.store.book[*]")
.to("log:book");
from("direct:start")
.split().jsonpath("$.store.book[*]")
.to("log:book");
然后,会记录每个图书,但消息正文都是 Map 实例。有时,您可能希望将其输出为普通 String JSon 值,该值可以从 Camel 2.20 开始,使用 writeAsString 选项,如下所示:
from("direct:start")
.split().jsonpathWriteAsString("$.store.book[*]")
.to("log:book");
from("direct:start")
.split().jsonpathWriteAsString("$.store.book[*]")
.to("log:book");
然后,每个书都记录为 String JSon 值。对于早期版本的 Camel,您需要使用 camel-jackson dataformat 和 marshal 消息正文,使它将消息正文从 Map 转换为 String 类型。