JSONsoporte en Amazon DynamoDB - AWS SDK for .NET

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.

JSONsoporte en Amazon DynamoDB

nota

La información de este tema es específica de los proyectos basados en. NETFramework y la AWS SDK for .NET versión 3.3 y anteriores.

AWS SDK for .NET Admite JSON datos cuando se trabaja con Amazon DynamoDB. Esto le permite obtener más fácilmente datos con JSON formato de tablas de DynamoDB e insertar JSON documentos en ellas.

Obtener datos de una tabla de DynamoDB en formato JSON

El siguiente ejemplo 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 ToJson método de la Document clase convierte un elemento de la tabla en una JSON cadena con formato. 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.

Insertar datos de JSON formato en una tabla de DynamoDB

El siguiente ejemplo muestra cómo utilizar el JSON formato 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 FromJson método de la Document clase convierte una cadena con JSON formato 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 a JSON

Siempre que llame al ToJson método de la Document clase y, a continuación, en los JSON datos resultantes llame al FromJson método para volver a convertir los JSON datos en una instancia de una Document clase, algunos tipos de datos de DynamoDB no se convertirán como se esperaba. En concreto:

  • Los conjuntos de DynamoDB (SSlos tiposNS, BS y) se convertirán en matrices. JSON

  • Los escalares y conjuntos binarios de DynamoDB (Blos tipos BS y) se convertirán en cadenas o listas de cadenas codificadas JSON en base64.

    En este escenario, debe llamar al DecodeBase64Attributes método de la Document clase para reemplazar los datos codificados en base64 por la representación binaria correctaJSON. En el siguiente ejemplo se reemplaza un atributo de elemento escalar binario codificado en base64 en una instancia de una clase Document, denominada Picture, 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 clase Document, denominada RelatedPictures:

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

Más información

Para obtener más información y ejemplos de programación JSON con DynamoDB con AWS SDK for .NET, consulte: