#dataweave #mule4
#dataweave #mule4
Вопрос:
я пытаюсь сопоставить значения в приведенной ниже полезной нагрузке.
result = {
"drives": [{
"id": "0AC_FdkeL63mHUk9PVA",
"name": "QA"
}, {
"id": "0AC_Ype39GAOpUk9PVA",
"name": "Salesforce.com"
}, {
"id": "0AA9MLlEbuhRfUk9PVA",
"name": "UAT-zz-SFJobs-2020-10"
}]
}
Я использую приведенный ниже код, чтобы проверить, соответствует ли значение Salesforce.com присутствует там и верните его.
используя приведенный ниже код
%dw 2.0
output application/json
---
payload.result.drives filter ((item, index) -> item.name == "Salesforce.com")
Это выдает мне ошибку, как я могу этого добиться
Ожидаемый результат:
"drives": [{
"id": "0AC_Ype39GAOpUk9PVA",
"name": "Salesforce.com"
} ]
Комментарии:
1. Привет, Дэниел! Не могли бы вы предоставить более подробную информацию об ошибке, которую вы получаете? Спасибо.
2. Ваш ввод, похоже, представляет собой смесь Java и JSON. Вероятная ошибка, которую вы получаете, заключается в том, что она пытается считываться как JSON, но неправильно отформатирована.
Ответ №1:
Работает для меня. Вам необходимо создать drives
атрибут для ответа, чтобы он соответствовал ожидаемому результату.
Обратите внимание, что ввод не является допустимым JSON. Это может быть причиной ошибки.
%dw 2.0
output application/json
---
{
drives: payload.result.drives filter ((item, index) -> item.name == "Salesforce.com")
}
Вывод:
{
"drives": [
{
"id": "0AC_Ype39GAOpUk9PVA",
"name": "Salesforce.com"
}
]
}
Ввод (скорректированный):
{
"result" : {
"drives": [{
"id": "0AC_FdkeL63mHUk9PVA",
"name": "QA"
}, {
"id": "0AC_Ype39GAOpUk9PVA",
"name": "Salesforce.com"
}, {
"id": "0AA9MLlEbuhRfUk9PVA",
"name": "UAT-zz-SFJobs-2020-10"
}]
}
}
Ответ №2:
Попробуйте это: всякий раз, когда вы сталкиваетесь с массивом объектов, вы можете фильтровать на основе значения определенного ключа. Здесь имя является ключом и равно «Salesforce.com «. Таким образом, объекты с другими именами будут отфильтрованы.
%dw 2.0
output application/json
var result = {
"drives": [{
"id": "0AC_FdkeL63mHUk9PVA",
"name": "QA"
}, {
"id": "0AC_Ype39GAOpUk9PVA",
"name": "Salesforce.com"
}, {
"id": "0AA9MLlEbuhRfUk9PVA",
"name": "UAT-zz-SFJobs-2020-10"
}]
}
---
{
drives: result.drives filter ((item, index) -> item.name == "Salesforce.com")
}