

Aviso de fim do suporte: em 15 de setembro de 2025, o suporte para o Amazon Lex V1 AWS será interrompido. Após 15 de setembro de 2025, você não poderá mais acessar o console do Amazon Lex V1 nem os respectivos recursos. Se você estiver usando o Amazon Lex V2, consulte o [guia do Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) em vez disso. 

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configuração de atributos complexos
<a name="context-mgmt-complex-attributes"></a>

Os atributos de sessão e solicitação são string-to-string mapas de atributos e valores. Em muitos casos, você pode usar o mapa de string para transferir valores de atributo entre o aplicativo cliente e o bot. Em alguns casos, no entanto, pode ser necessário transferir uma estrutura complexa ou dados binários que não podem ser facilmente convertidos em um mapa de string. Por exemplo, o seguinte objeto JSON representa um arranjo com as três cidades mais populosas dos Estados Unidos:

```
{
   "cities": [
      {
         "city": {
            "name": "New York",
            "state": "New York",
            "pop": "8537673"
         }
      },
      {
         "city": {
            "name": "Los Angeles",
            "state": "California",
            "pop": "3976322"
         }
      },
      {
         "city": {
            "name": "Chicago",
            "state": "Illinois",
            "pop": "2704958"
         }
      }
   ]
}
```

Essa matriz de dados não se traduz bem em um string-to-string mapa. Nesse caso, você pode transformar um objeto em uma string simples para que você possa enviá-lo ao seu bot com as operações [PostContent](API_runtime_PostContent.md) e [PostText](API_runtime_PostText.md). 

Por exemplo, se você estiver usando JavaScript, você pode usar a `JSON.stringify` operação para converter um objeto em JSON e a `JSON.parse` operação para converter texto JSON em um JavaScript objeto:

```
// To convert an object to a string.
var jsonString = JSON.stringify({{object}}, null, 2);
// To convert a string to an object.
var {{obj}} = JSON.parse({{JSON string}});
```

Para enviar atributos de sessão com a `PostContent` operação, você deve codificar os atributos em base64 antes de adicioná-los ao cabeçalho da solicitação, conforme mostrado no código a seguir: JavaScript

```
var {{encodedAttributes}} = new Buffer({{attributeString}}).toString("base64");
```

Você pode enviar dados binários para as operações `PostContent` e `PostText` convertendo os dados para uma string codificada em base64 e, em seguida, enviando a string como o valor nos atributos de sessão:

```
"sessionAttributes" : {
   "binaryData": "{{base64 encoded data}}"
}
```