

O AWS SDK para .NET V3 entrou no modo de manutenção.

Recomendamos que você migre para a [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obter detalhes e informações adicionais sobre como migrar, consulte nosso [anúncio do modo de manutenção](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

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á.

# Suporte para JSON no Amazon DynamoDB
<a name="dynamodb-json"></a>

**nota**  
As informações neste tópico são específicas para projetos baseados no.NET Framework e na AWS SDK para .NET versão 3.3 e anteriores.

O AWS SDK para .NET suporta dados JSON ao trabalhar com o Amazon DynamoDB. Isso permite que você obtenha dados formatados para JSON com mais facilidade e insira documentos em JSON nas tabelas do DynamoDB.

**Topics**
+ [Obtenha dados de uma tabela do DynamoDB em formato JSON](#dynamodb-json-get-table-data)
+ [Inserira os dados do formato JSON em uma tabela do DynamoDB](#dynamodb-json-insert-table-data)
+ [Conversões do tipo de dados do DynamoDB para JSON](#dynamodb-json-datatypes)
+ [Mais informações](#dynamodb-json-more-info)

## Obtenha dados de uma tabela do DynamoDB em formato JSON
<a name="dynamodb-json-get-table-data"></a>

O exemplo a seguir mostra como obter dados de uma tabela em formato JSON:

```
// using Amazon.DynamoDBv2;
// using Amazon.DynamoDBv2.DocumentModel;

var client = new AmazonDynamoDBClient();
var table = Table.LoadTable(client, "AnimalsInventory");
var item = table.GetItem(3, "Horse");

var jsonText = item.ToJson();
Console.Write(jsonText);
      
// Output:
//   {"Name":"Shadow","Type":"Horse","Id":3}

var jsonPrettyText = item.ToJsonPretty();
Console.WriteLine(jsonPrettyText);
      
// Output:
//   {
//     "Name" : "Shadow",
//     "Type" : "Horse",
//     "Id"   : 3
//   }
```

No exemplo anterior, o método `ToJson` da classe `Document` converte um item da tabela em uma string formatada para JSON. O item é recuperado pelo método `GetItem` da classe `Table`. Para determinar o item a ser obtido, neste exemplo, o `GetItem` método usa a chave hash-and-range primária do item de destino. Para determinar a tabela de onde se obter o item, o método `LoadTable` da classe `Table` usa uma instância da classe `AmazonDynamoDBClient` e o nome da tabela de destino no DynamoDB.

## Inserira os dados do formato JSON em uma tabela do DynamoDB
<a name="dynamodb-json-insert-table-data"></a>

O exemplo a seguir mostra como usar o formato JSON para inserir um item em uma tabela do DynamoDB:

```
// using Amazon.DynamoDBv2;
// using Amazon.DynamoDBv2.DocumentModel;

var client = new AmazonDynamoDBClient();
var table = Table.LoadTable(client, "AnimalsInventory");
var jsonText = "{\"Id\":6,\"Type\":\"Bird\",\"Name\":\"Tweety\"}";
var item = Document.FromJson(jsonText);

table.PutItem(item);
```

No exemplo anterior, o método `FromJson` da classe `Document` converte uma string formatada para JSON em um item. O item é inserido na tabela pelo método `PutItem` da classe `Table`, que usa a instância da classe `Document` que contém o item. Para determinar a tabela na qual inserir o item, o método `LoadTable` da classe `Table` é chamado, especificando uma instância da classe `AmazonDynamoDBClient` e o nome da tabela de destino no DynamoDB.

## Conversões do tipo de dados do DynamoDB para JSON
<a name="dynamodb-json-datatypes"></a>

Sempre que você chamar o método `ToJson` da classe `Document` e depois nos dados JSON resultantes chamar o método `FromJson` para converter dados JSON de volta a uma instância de uma classe `Document`, alguns tipos de dados do DynamoDB não serão convertidos como esperado. Especificamente:
+ Os conjuntos do DynamoDB (os tipos `SS`, `NS` e `BS`) serão convertidos em matrizes JSON.
+ Conjuntos e escalares binários do DynamoDB (os tipos `B` e `BS`) serão convertidos em strings JSON codificadas para base64 ou em listas de strings.

  Nesse cenário, você deverá chamar o método `DecodeBase64Attributes` da classe `Document` para substituir os dados de JSON codificados para base64 pela representação binária correta. O exemplo a seguir substitui um atributo de item escalar binário codificado para base64 em uma instância de uma classe `Document`, de nome `Picture`, pela representação binária correta. Este exemplo também faz o mesmo pelo atributo do item do conjunto binário codificado para base64 na mesma instância da classe `Document`, de nome `RelatedPictures`:

  ```
  item.DecodeBase64Attributes("Picture", "RelatedPictures");
  ```

## Mais informações
<a name="dynamodb-json-more-info"></a>

Para obter mais informações e exemplos de programação de JSON com o DynamoDB com o, consulte: AWS SDK para .NET
+  [Suporte a JSON pelo DynamoDB](https://aws.amazon.com/blogs/developer/dynamodb-json-support/) 
+  [Atualização do Amazon DynamoDB – JSON, nível gratuito expandido, escalabilidade flexível, itens maiores](https://aws.amazon.com/blogs/aws/dynamodb-update-json-and-more/) 