Amazon DynamoDB 中的 JSON 支援 - AWS SDK for .NET

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon DynamoDB 中的 JSON 支援

注意

本主題中的資訊特定於以 .NET Framework 和 3.3 AWS SDK for .NET 版及更早版本為基礎的專案。

使用 Amazon DynamoDB 時, AWS SDK for .NET 支援 JSON 資料。這可讓您更輕鬆地從 DynamoDB 資料表中取得 JSON 格式的資料,並將 JSON 文件插入其中。

從 JSON 格式的 DynamoDB 料表取得資料

下列範例顯示如何從 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 主索引鍵。若要決定要從中取得項目的表格,Table類別的LoadTable方法會使用類別的執行個體以及 DynamoDB 中目標資料表的名稱。AmazonDynamoDBClient

將 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 格式字串轉換到項目。項目是透過 Table 類別的 PutItem 方法插入到資料表中,其使用包含項目的 Document 類別的執行個體。若要決定要插入項目的資料表,會呼叫Table類別的LoadTable方法,並指定類AmazonDynamoDBClient別的執行個體以及 DynamoDB 中目標資料表的名稱。

DynamoDB 資料類型轉換為 JSON

每當您呼叫Document類別的ToJson方法,然後在產生的 JSON 資料上呼叫將 JSON 資料轉換回類Document別執行個體的FromJson方法時,某些 DynamoDB 資料類型將無法如預期般轉換。具體而言:

  • DynamoDB 集合 (SSNS、和BS類型) 將會轉換為 JSON 陣列。

  • DynamoDB 二進位純量和集合 (BBS類型) 會轉換為 base64 編碼的 JSON 字串或字串清單。

    在此案例中,您必須呼叫的 Document 類別的 DecodeBase64Attributes 方法,使用正確的二進位代碼取代以 base64 編碼的 JSON 資料。在以下範例中,在名為 PictureDocument 類別的執行個體中,使用正確的二進位代碼取代以 base64 編碼的二進位純量項目屬性。此範例也在名為 RelatedPicturesDocument 類別的相同執行個體中,針對以 base64 編碼的二進位集項目屬性進行目同操作:

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

詳細資訊

如需使用 DynamoDB 對 JSON 進行程式設計的詳細資訊和範例 AWS SDK for .NET,請參閱: