¡La versión 4 (V4) del SDK para .NET está en versión preliminar! Para ver información sobre esta nueva versión en versión preliminar, consulta la Guía para desarrolladores AWS SDK para .NET (versión preliminar de la versión 4).
Ten en cuenta que la versión 4 del SDK está en versión preliminar, por lo que su contenido está sujeto a cambios.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Compatibilidad con JSON en Amazon DynamoDB
nota
La información de este tema es específica para proyectos basados en .NET Framework y en la SDK para .NET versión 3.3 y anteriores.
AWS SDK para .NET Admite datos de JSON cuando se trabaja con Amazon DynamoDB. Esto permite obtener datos con formato JSON de forma más sencilla a partir de tablas de DynamoDB e insertar documentos JSON en ellas.
Temas
Obtención de datos de una tabla de DynamoDB en formato JSON
En el siguiente ejemplo se muestra cómo obtener datos de una tabla de DynamoDB en 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
// }
En el ejemplo anterior, el método ToJson
de la clase Document
convierte un elemento de la tabla en una cadena con formato JSON. El elemento se recupera a través del método GetItem
de la clase Table
. Para determinar el elemento que se va a obtener, en este ejemplo, el GetItem
método utiliza la clave hash-and-range principal del elemento de destino. Para determinar la tabla de la que se va a obtener el elemento, el método LoadTable
de la clase Table
usa una instancia de la clase AmazonDynamoDBClient
y el nombre de la tabla de destino en DynamoDB.
Inserción de datos con formato JSON en una tabla de DynamoDB
En el siguiente ejemplo se muestra cómo usar formato JSON para insertar un elemento en una tabla de 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);
En el ejemplo anterior, el método FromJson
de la clase Document
convierte una cadena con formato JSON en un elemento. El elemento se inserta en la tabla a través del método PutItem
de la clase Table
, que usa la instancia de la clase Document
que contiene el elemento. Para determinar la tabla en la que se va a insertar el elemento, se llama al método LoadTable
de la clase Table
, especificando una instancia de la clase AmazonDynamoDBClient
y el nombre de la tabla de destino en DynamoDB.
Conversiones de tipos de datos de DynamoDB en JSON
Si llama al método ToJson
de la clase Document
y, después, en los datos JSON resultantes, llama al método FromJson
para convertir de nuevo los datos JSON en una instancia de una clase Document
, algunos tipos de datos de DynamoDB no se convertirán del modo esperado. En concreto:
-
Los conjuntos de DynamoDB (los tipos
SS
,NS
yBS
) se convertirán en matrices JSON. -
Los conjuntos y escalares binarios de DynamoDB (los tipos
B
yBS
) se convertirán en cadenas o listas de cadenas JSON codificadas en base64.En este escenario, debe llamar al método
DecodeBase64Attributes
de la claseDocument
para reemplazar los datos JSON codificados en base64 con la representación binaria correcta. En el siguiente ejemplo se reemplaza un atributo de elemento escalar binario codificado en base64 en una instancia de una claseDocument
, denominadaPicture
, con la representación binaria correcta. En este ejemplo también se hace lo mismo para un atributo de elemento del conjunto binario codificado en base64 en la misma instancia de la claseDocument
, denominadaRelatedPictures
:item.DecodeBase64Attributes("Picture", "RelatedPictures");
Más información
Para obtener más información y ejemplos de programación de JSON con DynamoDB con AWS SDK para .NET, consulte: