【问题标题】:Iterate Ma For Each Mulesoft为每个 Mulesoft 迭代 Ma
【发布时间】:2021-04-06 18:54:02
【问题描述】:

我有一个 LinkedHashMap 并且它有一个值(在调试器上检查)但是当我尝试将它用作每个组件的输入时,它会抛出这个错误:

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

这是我的每个人的 sn-p :

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

相当确定有效载荷不为空且为空,并且是 HashMap 的实例。我在这里错过了什么吗?谢谢!

【问题讨论】:

    标签: mulesoft


    【解决方案1】:

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

    #[entriesOf(payload)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2021-12-16
      • 2018-07-13
      相关资源
      最近更新 更多