Support JSON dans Amazon DynamoDB - AWS SDK for .NET

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

Note

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

Il AWS SDK for .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.

Obtenir des données à partir d'une table DynamoDB au format JSON

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

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

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 (SSles typesNS, BS et) seront convertis en tableaux JSON.

  • Les scalaires et ensembles binaires DynamoDB (Bles 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

Pour plus d'informations et des exemples de programmation de JSON avec DynamoDB avec AWS SDK for .NET le, voir :