2017-04-25 90 views
0

我想要訪問mule中數組數組的每個子數組中每個第二個元素的值。例如,這裏是我的有效載荷(存儲在flowVar中)。騾:訪問數組給定的數組

InputPayload = [[JAAW,3000.0,EQtEAM],[JAAW,233333.0,3EAM]]

我試圖訪問在迭代每個陣列的第二元件,所以執行以下操作:

 <foreach collection="#[flowVars.InputPayload]" counterVariableName="i" doc:name="For Each" > 
     <set-variable variableName="ID" value="#[flowVars.InputPayload[i][2]]" doc:name="Variable"/> 

但是我的代碼中斷,錯誤如下:


消息:表達式的執行 「flowVars.InputPayload [I] [2]」 失敗。 (org.mule.api.expression.ExpressionRuntimeException)。消息有效負載的類型爲:ArrayList,

如何訪問每個第二個元素的值?

回答

0

顯然,錯誤是由不正確的索引分配新建分配FY,#[flowVars.InputPayload[i][2]](java.lang.IndexOutOfBoundsException)引起的。索引從1開始,在第二次迭代期間發生錯誤。

IMHO有兩種選擇來解決該問題:

  1. 減去索引與1:#[flowVars.InputPayload[i - 1][2]]
  2. 修改的表達,直接使用有效載荷。由於對於每個範圍內的有效載荷已經涉及迭代項本身:#[payload[2]]