

La AWS SDK pour .NET V3 est passée en mode maintenance.

Nous vous recommandons de migrer vers la version [AWS SDK pour .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter notre [annonce relative au mode de maintenance](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Support JSON dans Amazon DynamoDB
<a name="dynamodb-json"></a>

**Note**  
Les informations contenues dans cette rubrique sont spécifiques aux projets basés sur .NET Framework et les AWS SDK pour .NET versions 3.3 et antérieures.

Il AWS SDK pour .NET prend en charge les données JSON lorsque vous travaillez avec Amazon DynamoDB. Cela vous permet d'obtenir plus facilement des données au format JSON à partir de tables DynamoDB et d'y insérer des documents JSON.

**Topics**
+ [Obtenir des données à partir d'une table DynamoDB au format JSON](#dynamodb-json-get-table-data)
+ [Insérer des données au format JSON dans une table DynamoDB](#dynamodb-json-insert-table-data)
+ [Conversions des types de données DynamoDB en JSON](#dynamodb-json-datatypes)
+ [Plus d'informations](#dynamodb-json-more-info)

## Obtenir des données à partir d'une table DynamoDB au format JSON
<a name="dynamodb-json-get-table-data"></a>

L'exemple suivant montre comment obtenir des données d'une table DynamoDB au format 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
//   }
```

Dans l'exemple précédent, la méthode `ToJson` de la classe `Document` convertit un élément de la table en chaîne au format JSON. La méthode `GetItem` de la classe `Table` permet de récupérer cet élément. Pour déterminer l'élément à obtenir, dans cet exemple, la `GetItem` méthode utilise la clé hash-and-range primaire de l'élément cible. Pour déterminer la table à partir de laquelle obtenir l'élément, la `LoadTable` méthode de la `Table` classe utilise une instance de la `AmazonDynamoDBClient` classe et le nom de la table cible dans DynamoDB.

## Insérer des données au format JSON dans une table DynamoDB
<a name="dynamodb-json-insert-table-data"></a>

L'exemple suivant montre comment utiliser le format JSON pour insérer un élément dans une table 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);
```

Dans l'exemple précédent, la méthode `FromJson` de la classe `Document` convertit une chaîne au format JSON en élément. L'élément est inséré dans la table par l'intermédiaire de la méthode `PutItem` de la classe `Table`, qui utilise l'instance de la classe `Document` contenant l'élément. Pour déterminer la table dans laquelle insérer l'élément, la `LoadTable` méthode de la `Table` classe est appelée, en spécifiant une instance de la `AmazonDynamoDBClient` classe et le nom de la table cible dans DynamoDB.

## Conversions des types de données DynamoDB en JSON
<a name="dynamodb-json-datatypes"></a>

Chaque fois que vous appelez la `ToJson` méthode de la `Document` classe, puis que vous appelez la `FromJson` méthode pour reconvertir les données JSON en instance de `Document` classe, certains types de données DynamoDB ne sont pas convertis comme prévu. En particulier :
+ Les ensembles DynamoDB (`SS`les types`NS`, `BS` et) seront convertis en tableaux JSON.
+ Les scalaires et ensembles binaires DynamoDB (`B`les types `BS` et) seront convertis en chaînes JSON codées en base64 ou en listes de chaînes.

  Dans ce scénario, il convient d'appeler la méthode `DecodeBase64Attributes` de la classe `Document` pour remplacer les données JSON codées en base64 par la représentation binaire correcte. L'exemple suivant remplace par la représentation binaire correcte un attribut d'élément binary scalar codé en base64 dans une instance d'une classe `Document` nommée `Picture`. Cet exemple procède de même pour un attribut d'élément binary set codé en base64 dans la même instance de la classe `Document` nommée `RelatedPictures` :

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

## Plus d'informations
<a name="dynamodb-json-more-info"></a>

Pour plus d'informations et des exemples de programmation de JSON avec DynamoDB avec AWS SDK pour .NET le, voir :
+  [Support DynamoDB pour JSON](https://aws.amazon.com/blogs/developer/dynamodb-json-support/) 
+  [Mise à jour d'Amazon DynamoDB : JSON, offre gratuite élargie, dimensionnement flexible, éléments plus volumineux](https://aws.amazon.com/blogs/aws/dynamodb-update-json-and-more/) 