---
title: De/para
slug: depara
description: Learn how to use the De/Para concept for data transformation in this comprehensive document. Discover how to customize structures by mapping data between responses and adapt connectors accordingly. Explore the transformation of objects, lists, map lists, 
docTags: 
createdAt: 2023-05-03T13:57:39.000Z
---

## 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:

```json
{
  "nome": "string",
  "sobrenome": "string"
}
```

porém o conector A retorna:

```json
{
  "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
{
  "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:

```json
{
  "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:

```json
{
  "produto":{
    "nome": "camisa",
    "codigo": "123"
  }
}
```

Montagem:

```json
{
  "json_obj": {
    "name": "produto.nome",
    "referenceCode": "produto.codigo"
  }
}
```

Resultado:

```json
{
  "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:

```json
{

     "variacoes":[
        {
            "nome": "Tamanho:P;Gênero:Feminino;Cor:Azul"
        },
        {
            "nome": "Tamanho:M;Gênero:Feminino;Cor:Azul"
        }
    ]
}
```

Montagem:

```json
{
    "json_obj": {
        "json_list&&nomes&&variacoes": "nome"
    }
}
```

Resultado:

```json
{
  "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:

```json
{
  "categoria": "limpeza"
}
```

Montagem:

```json
{
    "json_obj": {
        "json_list&&categorias&&categoria": {}
    }
}
```

Resultado:

```json
{
  "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:&#x20;***json\_mapList && \<nome-do-campo> && \<caminho-onde-se-encontra-o-valor>*

**$ind:&#x20;***representa o indice do array*

Objeto a ser transformado:

```json
{

     "variacoes":[
        {
            "nome": "Tamanho:P;Gênero:Feminino;Cor:Azul"
        },
        {
            "nome": "Tamanho:M;Gênero:Feminino;Cor:Azul"
        }
    ]
}
```

Montagem:

```json
{
    "json_obj": {
        "json_mapList&&presentations&&variacoes": {
            "presentation": "$ind.nome"
        }
    }
}
```

Resultado:

```json
{
    "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:

```json
{

     "variacoes":[
        {
            "nome": "Tamanho:P;Gênero:Feminino;Cor:Azul",
            "quantidade": 10
        },
        {
            "nome": "Tamanho:M;Gênero:Feminino;Cor:Azul",
            "quantidade":11
        }
    ]
}
```

Montagem:

```json
{
    "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:&#x20;***default\_\<valor>*

Objeto a ser transformado:

```json
{
  "produto":{
    "nome": "camisa",
    "codigo": "123"
  }
}
```

Montagem:

```json
{
  "json_obj": {
    "name": "produto.nome",
    "referenceCode": "produto.codigo",
    "quantity": "default_10"
  }
}
```

Resultado:

```json
{
  "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**

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/VCmlZDWrFsp_pgGKP0TPq_image.png)

**Referenciando rule no depara**

```javascript
{
  "json_obj": {
    "referenceCode": "rule_codigo",
  }
}
```

