Mule 4 / DW2.0 - преобразовать ["B_B001", "C_C001", "D_D01"] в ('B_B001', 'C_C001', 'D_D01') - PullRequest
0 голосов
/ 06 августа 2020

Вход - [«B_B001», «C_C001», «D_D01»]

Выход - ('B_B001', 'C_C001', 'D_D01')

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Это зависит от типа данных о том, как вам нужно подойти к решению. Здесь у вас есть решение для двух типов ввода: JSON и String. Оба возвращают строку в желаемом формате.

%dw 2.0
output application/json
var asJson = ["B_B001","C_C001", "D_D01" ]
var asString = '["B_B001","C_C001", "D_D01" ]'
---
{
    fromJson: "('" ++ (asJson joinBy("','")) ++ "')",
    fromString: (( asString replace "[" with "(") replace  "]" with ")") replace  "\"" with "'"
}

Вывод

{   
  "fromJson": "('B_B001','C_C001','D_D01')",   
  "fromString": "('B_B001','C_C001', 'D_D01' )" 
}
0 голосов
/ 10 августа 2020

Есть несколько способов добиться этого. Предполагая, что это полезная нагрузка в массиве, и вы хотите изменить ее на вывод, показанный в вашем примере как текст / простой, попробуйте следующий скрипт:

%dw 2.0
output text/plain
---
"('" ++ (payload joinBy "','") ++ "')"
...