Amazon DynamoDB での JSON のサポート - AWS SDK for .NET

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon DynamoDB での JSON のサポート

注記

このトピックの情報は、.NET Framework と AWS SDK for .NET バージョン 3.3 以前に基づくプロジェクトに固有のものです。

は、Amazon DynamoDB を操作するときに JSON データ AWS SDK for .NET をサポートします。そのため、DynamoDB テーブルから JSON 形式のデータを取得したり、テーブルに JSON ドキュメントを挿入したりする操作を簡単に行えます。

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 の対象テーブルの名前を使用しています。

DynamoDB テーブルに JSON 形式のデータを挿入する

次の例では、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 への変換

Document クラスの ToJson メソッドを呼び出す場合、および結果の JSON データで FromJson メソッドを呼び出して JSON データを Document クラスのインスタンスに変換する場合、一部の DynamoDB データ型は意図したとおりには変換されません。具体的には次のとおりです。

  • DynamoDB のセット (SSNSBS 型) は、JSON の配列に変換されます。

  • DynamoDB のバイナリスカラーおよびセット (BBS 型) は、base64 でエンコードされた JSON 文字列または文字列のリストに変換されます。

    この場合は、Document クラスの DecodeBase64Attributes メソッドを呼び出して、base64 でエンコードされた JSON データを正しいバイナリ表現に置き換える必要があります。次の例では、Document クラスのインスタンスの Picture という名前の base64 でエンコードされたバイナリスカラー項目属性を、正しいバイナリ表現で置き換えています。また、この例では、Document クラスの同じインスタンスの RelatedPictures という名前の base64 でエンコードされたバイナリセット項目属性に対しても同じことを行っています。

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

詳細情報

を使用して DynamoDB で JSON をプログラミングする方法の詳細と例については AWS SDK for .NET、以下を参照してください。