Проблема в том, что массив YAML интерпретируется как разделенная запятыми строка в свойстве. Функция Содержит () работает в строках иначе, чем в массиве. В строках он ищет подходящую подстроку, поэтому 'AB' возвращает true. Вы можете преобразовать строку обратно в массив, используя функцию DataBeave splitBy (). Я показываю обе стороны, чтобы подчеркнуть разницу:
%dw 2.0
var prop = Mule::p('intGrp')
var propArray = Mule::p('intGrp') splitBy ','
output application/json
---
{
raw: prop,
array: propArray,
a: propArray contains ("A"),
ab: propArray contains ("AB")
}
Вывод:
{
"raw": "A,CD,EF,ABC,CDEF",
"array": [
"A",
"CD",
"EF",
"ABC",
"CDEF"
],
"a": true,
"ab": false
}
Обратите внимание, что если какая-либо из записей содержит запятую, она тоже будет разделена.