我已经在我的流程中散布,其输出是地图列表,如何将其转换为骡子中的单个地图?
我尝试过combine-collections-transfomer,flatten payload。似乎没什么用。
答案 0 :(得分:3)
您可以关注数据编织代码,但它会覆盖重复的密钥
// getFile() method returns the input stream of a local or online file
InputStream fileStream = getFile(source);
// Read the value of the InputStream and pass it to the
// Boilerpipe DefaultExtractor in order to extract the text
String html = readFromStream(fileStream);
String text = DefaultExtractor.INSTANCE.getText(html);
// Convert the value read from fileStream to a new ByteArrayInputStream
fileStream = new ByteArrayInputStream(html.getBytes("UTF-8"));
// Extract text and metadata via Apache Tika
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
AutoDetectParser parser = new AutoDetectParser();
parser.parse(fileStream, handler, metadata, context);
希望这有帮助。
答案 1 :(得分:0)
我建议使用自定义Java Transformer,以便您可以轻松处理特殊情况,例如具有不同值的重复键。 DataWeave函数也可以做到这一点,但你需要Mule EE。
使用Transformer这是一个简单的Java代码问题:
private List<String> list = new ArrayList<>();
然后在您的流程中使用此变换器。 See the docs for details.
答案 2 :(得分:0)
你有多种方法可以做到这一点,其中一个是flatten运算符,它将2个数组合并为一个数组。另一种方法是通过Dataweave Transform map运算符并根据您的要求合并它们。