JSON亚马逊 DynamoDB 中的支持 - Amazon SDK for .NET
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

JSON亚马逊 DynamoDB 中的支持

注意

本主题中的信息特定于基于的项目。 NET框架和 3.3 及更早 Amazon SDK for .NET 版本。

使用 Amazon DynamoDB 时 Amazon SDK for .NET 支持JSON数据。这使您能够更轻松地从 Dynam JSON oDB 表中获取格式化数据,并将JSON文档插入到 DynamoDB 表中。

从 DynamoDB 表中获取格式的数据 JSON

以下示例说明如何从 DynamoDB 表中获取格式的数据: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 // }

在前面的示例中,该Document类的ToJson方法将表中的项目转换为JSON格式化的字符串。项目通过 Table 类的 GetItem 方法检索。为了确定要获取的项目,在本示例中,该GetItem方法使用目标项目 hash-and-range的主键。为确定要从中获取项目的表,Table 类的 LoadTable 方法使用 AmazonDynamoDBClient 类的实例以及 DynamoDB 中的目标表名。

将JSON格式数据插入到 DynamoDB 表中

以下示例说明如何使用JSON格式将项目插入到 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);

在前面的示例中,该Document类的FromJson方法将JSON格式的字符串转换为项目。项目通过 PutItem 类的 Table 方法插入表中,该方法使用包含项目的 Document 类的实例。为确定要插入项目的表,调用 Table 类的 LoadTable 方法,并指定 AmazonDynamoDBClient 类的实例以及 DynamoDB 中的目标表名。

DynamoDB 数据类型转换为 JSON

无论何时调用DocumentToJson的方法,然后在生成的JSON数据上调用该FromJson方法将JSON数据转换回Document类的实例,某些 DynamoDB 数据类型都不会按预期进行转换。具体来说:

  • DynamoDB 集(SSNSBS和类型)将转换为数组。JSON

  • DynamoDB 二进制标量和集(BBS和类型)将转换为 JSON base64 编码的字符串或字符串列表。

    在这种情况下,您必须调用该DocumentDecodeBase64Attributes的方法,用正确的二进制表示形式替换 base64 编码JSON的数据。以下示例使用正确的二进制表示形式,在 Document 类的实例中,替换 base64 编码的名为 Picture 的二进制标量项目属性。此示例还在 Document 类的相同实例中,为名为 RelatedPictures 的 base64 编码二进制集项目属性执行相同的操作。

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

更多信息

有关使用 DynamoDB JSON 进行编程的更多信息和示例, Amazon SDK for .NET请参阅: