De/para
Conceito
O De/Para é usado para tranformação de dados, onde pode-se personalizar uma estrutura mapeando dados de uma resposta. Pode ser usado para adaptar uma estrutura de uma origem A para um destino B, por exemplo:
Temos dois conectores A e B onde a resposta do conector A deve servir de entrada para o conector B, que espera como entrada algo do tipo:
{
"nome": "string",
"sobrenome": "string"
}porém o conector A retorna:
{
"first_name": "Thauan",
"last_name": "Mendes"
}Com isso devemos adaptar a saída do conector A para que consigamos usar como entrada no conector B, e assim fica nosso De/para:
{
"json_obj": {
"nome": "first_name",
"sobrenome": "last_name"
}
}- do lado direito informamos o campo onde será buscado o valor;
- do lado esquerdo informamos o novo nome do campo para onde o valor será atribuido;
- a tag "json_obj" indica que é um objeto;
E assim fica o resultado final após a tranformação do de/para:
{
"nome": "Thauan",
"sobrenome": "Mendes"
}Tags
Tags são chaves usadas para identificar tipos como listas, objetos, maps, entre outros. Aqui mostratemos as tags suportadas atualmente no nosso De/Para:
Objetos (json_obj)
Usado para criar ou transformar um objeto.
Objeto a ser transformado:
{
"produto":{
"nome": "camisa",
"codigo": "123"
}
}Montagem:
{
"json_obj": {
"name": "produto.nome",
"referenceCode": "produto.codigo"
}
}Resultado:
{
"name": "camisa",
"referenceCode": "123"
}Listas (json_list)
Usado para criar ou tranformar listas, no exemplo a seguir trasformamos uma lista de objeto em uma lista de string.
sintaxe: json_list && <nome-do-campo> && <caminho-onde-se-encontra-o-valor>
Objeto a ser transformado:
{
"variacoes":[
{
"nome": "Tamanho:P;Gênero:Feminino;Cor:Azul"
},
{
"nome": "Tamanho:M;Gênero:Feminino;Cor:Azul"
}
]
}Montagem:
{
"json_obj": {
"json_list&&nomes&&variacoes": "nome"
}
}Resultado:
{
"nomes": [
"Tamanho:P;Gênero:Feminino;Cor:Azul",
"Tamanho:M;Gênero:Feminino;Cor:Azul"
]
}Tambem pode ser usado para criar uma lista a partir de um elemento, onde a origem não necessariamente seja uma lista, como por exemplo:
Objeto a ser tranformado:
{
"categoria": "limpeza"
}Montagem:
{
"json_obj": {
"json_list&&categorias&&categoria": {}
}
}Resultado:
{
"categorias": [
"limpeza"
]
}observe que o campo categoria no objeto de origem foi transformado em uma lista "categorias"
Mapa de Objetos (json_mapList)
Usado para transformar listas de objetos
sintaxe: json_mapList && <nome-do-campo> && <caminho-onde-se-encontra-o-valor>
$ind: representa o indice do array
Objeto a ser transformado:
{
"variacoes":[
{
"nome": "Tamanho:P;Gênero:Feminino;Cor:Azul"
},
{
"nome": "Tamanho:M;Gênero:Feminino;Cor:Azul"
}
]
}Montagem:
{
"json_obj": {
"json_mapList&&presentations&&variacoes": {
"presentation": "$ind.nome"
}
}
}Resultado:
{
"presentations": [
{
"presentation": "Tamanho:P;Gênero:Feminino;Cor:Azul"
},
{
"presentation": "Tamanho:M;Gênero:Feminino;Cor:Azul"
}
]
}Chave de uma lista (json_key_list)
Usado para apontar um array, e com isso montar um objeto para cada item da lista e iterar sobre eles.
Objeto a ser transformado:
{
"variacoes":[
{
"nome": "Tamanho:P;Gênero:Feminino;Cor:Azul",
"quantidade": 10
},
{
"nome": "Tamanho:M;Gênero:Feminino;Cor:Azul",
"quantidade":11
}
]
}Montagem:
{
"json_key_list": "variacoes",
"json_obj": {
"name": "nome",
"quantity": "quantidade"
}
}Valor padrão (default_)
Usado para definir um valor padrão para um campo
sintaxe: default_<valor>
Objeto a ser transformado:
{
"produto":{
"nome": "camisa",
"codigo": "123"
}
}Montagem:
{
"json_obj": {
"name": "produto.nome",
"referenceCode": "produto.codigo",
"quantity": "default_10"
}
}Resultado:
{
"name": "camisa",
"referenceCode": "123",
"quantity": "10"
}Referenciando uma rule no de/para
Para adicionar uma rule sobre algum valor que será preenchido no de/para, é necessário primeiro criar a rule (clique aqui e saiba como criar uma rule). Após criado a rule basta referenciar ela usando rule_<id_da_rule>, como no exemplo abaixo:
Rule

Referenciando rule no depara
{
"json_obj": {
"referenceCode": "rule_codigo",
}
}