3

我在从表中检索数据时遇到困难。我正在使用 Amazon Dynamo DB,并且我已成功填充我的表。当我扫描表或使用 getItem 时,返回的信息是 AttributeValue 类型的。我浏览了文档,但找不到应该如何处理 AttributeValue 以使其成为 int 或 string。亚马逊网站上的扫描示例代码在 Dictionary 对象中返回信息,但它是一个字典,其中的字符串映射到属性值。您是否知道查询 Dynamo DB 表并将结果存储在字符串映射到字符串或字符串映射到整数的地方?

4

1 回答 1

5

假设您使用的是AWS SDK for JavaClass AttributeValue的对象可以是String、Number、StringSet、NumberSet类型,并且该类具有相应的 getter/setter,例如:

  • public String getN() -数字是正或负的精确值小数和整数。一个数字最多可以有 38 位精度,可以在 10^-128 到 10^+126 之间。
  • public String getS() -字符串是带有 UTF-8 二进制编码的 Unicode。最大大小受主键大小(1024 字节作为键的范围部分或 2048 字节作为单部分哈希键)或项目大小 (64k) 的限制。

请注意,返回值getN()仍然是一个字符串,必须通过您的 Java 字符串相应地转换为选择的数字转换方法。这种仅基于字符串参数的DynamoDB 数据类型检索/提交的隐式弱类型有点不幸,并且不能完全简化开发,请参阅我对java 中 batchGetItem API 中的错误的回答,以解决此类问题。

祝你好运!

于 2012-02-26T13:31:11.927 回答