Я пытаюсь использовать визуальный сопоставитель dataweave для сопоставления имени (возврат из db) с именем и фамилией, для этого мне нужно разделить строку (имя), я использую функцию splitBy () для dataweave splitBy (String, String) : Массив, как вы можете видеть, возвращает массив строк, и я хочу просто приветствовать ввод образца ключа firstname: firstName: "hello world" splitBy ("") образец вывода: firstname: ["hello", "world"] ,
мой код:
%dw 2.0
output application/json
---
payload map ( payload01 , indexOfPayload01 ) -> {
id: payload01.accountID default "",
firstName: "payload01.name" splitBy(" "),
address: ((payload01.street default "") ++ (payload01.city default "")) ++ (payload01.state default ""),
postal: payload01.postal default "",
country: payload01.country default "",
creationDate: payload01.creationDate as String default "",
accountType: payload01.accountType default "",
miles: payload01.miles default 0
}
update: я добился этого в dataweave, создав функцию userdefine, которая вызывает функцию splitBy (). В приведенном ниже коде я разбираю имя, возвращаемое из db, в имени и фамилии
%dw 2.0
output application/json
fun split(data) = data splitBy (" ")
---
payload map ( payload01 , indexOfPayload01 ) -> {
id: payload01.accountID default "",
address: ((payload01.street default "") ++ (payload01.city default "")) ++ (payload01.state default ""),
postal: payload01.postal default "",
country: payload01.country default "",
creationDate: payload01.creationDate as String default "",
accountType: payload01.accountType default "",
firstName: split(payload01.name)[0],
lastName: split(payload01.name)[1],
miles: payload01.miles default 0
}