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

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

使用 Amazon DynamoDB 中的 JSON SupportAmazon SDK for .NET

注意

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

这些区域有:Amazon SDK for .NET在处理 Amazon DynamoDB 时,支持 JSON 数据。这使您能够更轻松地从 DynamoDB 表中获取 JSON 格式的数据以及将 JSON 文档插入到其中。

从 DynamoDB 表以 JSON 格式获取数据

以下示例显示了如何以 JSON 格式从 DynamoDB 表中获取数据:

// 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 目标项目的主键。要确定从哪个表中获取物品,LoadTable的方法Table类使用的实例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);

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

DynamoDB 数据类型转换为 JSON

每当你打电话给ToJson的方法Document类,然后在生成的 JSON 数据上你调用FromJson将 JSON 数据转换回实例的方法Document类中,某些 DynamoDB 数据类型将不会按预期的方式进行转换。具体来说:

  • DynamoDB 集合(SSNS, 和BS类型)将转换为 JSON 数组。

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

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

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

更多信息

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