La version 4 (V4) du SDK for .NET est en avant-première ! Pour obtenir des informations sur cette nouvelle version en avant-première, consultez le guide du développeur AWS SDK for .NET (version 4).
Veuillez noter que la version V4 du SDK est en cours de prévisualisation, son contenu est donc sujet à modification.
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 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.
Rubriques
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 (
SS
les typesNS
,BS
et) seront convertis en tableaux JSON. -
Les scalaires et ensembles binaires DynamoDB (
B
les typesBS
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 classeDocument
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 classeDocument
nomméePicture
. 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 classeDocument
nomméeRelatedPictures
: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 :