当前位置: 首页 > 知识库问答 >
问题:

为每个Mulesoft迭代Ma

师建德
2023-03-14

我有一个LinkedHashMap,它有一个值(在调试器上检查),但是当我试图使用它作为每个组件的输入时,它抛出了这个错误:

"Expecting Array or Object but got Null. evaluating expression "payload. entrySet()"

这是我为每个人准备的片段:

<foreach collection="#[payload.entrySet()]">
...
</foreach>

非常确定负载不是null和空的,并且是HashMap的实例。我错过什么了吗?谢谢

共有1个答案

鲁龙野
2023-03-14

Foreach迭代可重用连接或流的html" target="_blank">元素。我认为一张地图不符合这个条件。为了理解错误,最好使用DataWeave术语,而不是Java术语或具体类型,如调试器中看到的类型。Java映射是一个对象,列表是一个数组。您试图使用映射实现(LinkedHashMap)中的Java实例方法,但这不起作用(请参阅)https://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-java-methods对于可以工作但不适用于此问题的内容)。相反,考虑DataWeave术语,您可以使用函数entriesOf()来获取一个条目数组,您可以使用foreach对其进行迭代:

#[entriesOf(payload)]
 类似资料:
  • 我试图使用mulesoft上的for-each块在节点Node3a上迭代,但似乎不起作用。你知道我怎样才能做到这一点吗?

  • 我正在对我的JSON数据运行一个。each,它正在被解析,接下来我要做的一件事是根据每个div的。text()检查JSON输出中的数据,这些div的ID为“status”。 这就是问题所在,它只是报告id为“status”的每个div条目的第一个div's.text()。 一开始,我试着在JSON解析上运行。each,并在里面执行if null 请有人帮我一下,指出我哪里出错了

  • 考虑这个简单的C++函数来计算数组的前缀和: 它是4个融合的UOP1,这个CPU可以支持4个融合的OPs/周期。 有通过和携带的依赖链,每个都是一个循环,但是这些UOP可以到4个ALU端口中的任何一个,所以似乎不太可能冲突。融合的需要转到p6,这是一个更令人担忧的问题,但我只测量到p6的1.1 UOPS/迭代。这将解释每次迭代1.1个循环,但不是1.4个循环。如果我将循环展开2倍,端口压力会低得多

  • 我有一个名为计算的方法,它需要太长时间才能完成。所以我决定将我的信息列表对象部分发送到这个方法。我如何遍历每n个元素?

  • 我正在尝试为我制作的Set编写一个自定义的迭代器。我对Interface Iterable的合同有点困惑。它有三个方法:Next()、hasNext()和拿下()。我的设置是不可变的,所以我计划为删除()方法抛出一个Unsupport tedoperationException。它也被称为“延迟生成”,即元素不存储在内存中,而是在需要时创建,但这不是这里也不是那里。 Iterator的Next()

  • 我如何通过for循环的每次迭代声明一个新变量? 例如: 循环完成后,我想要4个变量,分别名为、、和,每个变量分别设置为、、和(当我在上面的代码中将设置为时,我实际上是将其设置为,因为这是在整个特定迭代中的值