3

テーブルからデータを取得する際に問題が発生しています。Amazon Dynamo DB を使用しており、テーブルにデータを正常に入力しました。テーブルをスキャンするか getItem を使用すると、返される情報は AttributeValue 型です。ドキュメントを調べましたが、AttributeValue を処理して int または string にする方法がわかりません。Amazon Web サイトのスキャンのサンプル コードでは、Dictionary オブジェクトに情報が返されますが、これは文字列が属性値にマップされた辞書です。とにかく、Dynamo DB テーブルにクエリを実行し、結果を文字列が文字列にマッピングされるか、文字列が整数にマッピングされる場所に格納することを知っていますか?

4

1 に答える 1

5

AWS SDK for Javaを使用していると仮定すると、クラスAttributeValueのオブジェクトはString、Number、StringSet、NumberSetタイプであり、クラスはそれに応じてそれぞれのゲッター/セッターを備えています。

  • public String getN() -数値は正または負の正確な値の小数および整数です。数値の精度は最大38桁で、10^-128から10^+126の間です。
  • public String getS() -文字列は、UTF-8バイナリエンコーディングを使用したUnicodeです。最大サイズは、主キーのサイズ(キーの範囲部分として1024バイト、または単一部分のハッシュキーとして2048バイト)またはアイテムサイズ(64k)によって制限されます。

の戻り値getN()は依然として文字列であり、それに応じて選択したJava文字列から数値変換方法に変換する必要があることに注意してください。文字列パラメーターのみに基づくDynamoDBデータ型の取得/送信のこの暗黙の弱い型付けは、少し残念であり、開発を正確に容易にするものではありません。たとえば、このような問題については、JavaのbatchGetItemAPIのエラーに対する私の回答を参照してください。

幸運を!

于 2012-02-26T13:31:11.927 に答える