考虑有一个像这样的过程变量:
Object type name: java.util.ArrayList
Serialization Data Format: application/x-java-serialized-object
Value: [{"id": 1, "name": "John"}, {"id": 2, "name": "Jane"]
我正在尝试在 Script-Task 中编写一个 Javascript,它提取一个变量,如上所示,并使用它。这是我走了多远:
var arr = execution.getVariableTyped("arr", true);
for (var i=0; arr.size(); i++) {
var item = arr.get(i);
//Do somthing with `item`
}
//Add an object to the end of the array
arr.add({ "id": 3, "name": "Jack" });
execution.setVariable("arr", arr);
但是当我运行它时,它会引发以下错误:
无法完成任务xxx:无法评估脚本:TypeError:ObjectValue [value = [{“id”:1,“name”:“John”},{“id”:2,“name”:“Jane”]], isDeserialized=true, serializationDataFormat=application/x-java-serialized-object, objectTypeName=java.util.ArrayList, serializedValue=X chars] 在 <eval> 中没有这样的函数“size”
在这种情况下,ArrayList 的参考资料说它有,size
而且add
两者都有!。这是怎么回事?