Проблема в том, что точка выбора (.) Работает на объекте и массиве объектов.Когда он применяется к массиву, он применяет селектор точек ко всем элементам массива, относящимся к типу object, и возвращает этот результат.
Позволяет переходить по частям
payload.source
Возвращает
[
{
"uri": "entities/1R6xV",
"createdBy": "API_USER",
"createdTime": 1562504739146,
"attributes": {
"label": "000000000002659654",
"value": {
"Name": [
{
}
],
"Id": [
{
}
],
"Number": [
{
"type": "config/Types/Number/attributes/Number",
"ov": true,
"value": "000000000002659654",
"uri": "entities/1R6xV/attributes/Num/1ZtyT/Number/60pvN6"
}
]
}
}
}
]
Пока полезная нагрузка является объектом, он возвращает значение источника, являющегося массивом
payload.source.attributes
Возвращает
[
{
"label": "000000000002659654",
"value": {
"Name": [
{
}
],
"Id": [
{
}
],
"Number": [
{
"type": "config/Types/Number/attributes/Number",
"ov": true,
"value": "000000000002659654",
"uri": "entities/1R6xV/attributes/Num/1ZtyT/Number/60pvN6"
}
]
}
}
]
Работает нормально, потому что в результате payload.source был завершен массив объектов, поэтому он будет делать этот выбор над этими объектами.
Теперь, когда выexecute
payload.source.attributes.value.Number
Возвращает
[
[
{
"type": "config/Types/Number/attributes/Number",
"ov": true,
"value": "000000000002659654",
"uri": "entities/1R6xV/attributes/Num/1ZtyT/Number/60pvN6"
}
]
]
Это массив массивов, и вот где он сломан.
Мое решение
У вас есть две альтернативы здесь
Использование Свести Функция
flatten (payload.source.attributes.value.Number) .value
Использование потомок селектор
payload.source.attributes.value.Number..value