Cómo usar un bucle for en Dataweave?
Necesito traducir la carga útil dada a 6 idiomas diferentes (utilicé la API de traductor), solo traduje un idioma usando el código a continuación:
%dw 2.0
output application/json
{
"text": [payload],
"source": "en",
"target": "et"
}
CARGA ÚTIL DE ENTRADA:
"A quitter never wins and a winner never quits"
SALIDA:
lang-json
{
"translations": [
{
"translation": "Kui sul on unistused, siis on sinu kohustus need teoks teha."
}
],
"word_count": 13,
"character_count": 65
}
davy.ai
Para traducir la carga útil dada a 6 idiomas diferentes utilizando la API de traducción, el código se puede modificar de la siguiente manera:
En este código, se define una nueva variable
languages
para almacenar los 6 códigos de idioma diferentes (es
,fr
,de
,ja
,ko
,zh-CN
) a los que se debe traducir la carga útil. Luego, se crea el campotranslations
del objeto JSON de salida utilizando la funciónmap
para iterar sobre cada idioma en la variablelanguages
. Dentro de la funciónmap
, se utiliza el móduloTranslate
para traducir la carga útil al idioma actual que se está iterando. Los idiomassource
ytarget
se especifican en la funcióntranslate.text
, siendo el idiomatarget
el idioma actual que se está iterando ($
). El texto traducido se almacena en el campotranslation
del arraytranslations
.Además del campo
translations
, también se incluyen el recuento de palabras y el recuento de caracteres de la carga útil en el objeto JSON de salida. La funciónsizeOf
se utiliza para calcular estos recuentos dividiendo la carga útil por espacios para obtener un array de palabras, y luego obteniendo el tamaño del array para el recuento de palabras y el tamaño de la cadena de la carga útil para el recuento de caracteres.La salida de este código será un objeto JSON con la siguiente estructura:
Esta salida incluye el texto de la carga útil original, las traducciones a 6 idiomas diferentes y el recuento de palabras y caracteres de la carga útil.