android - 编码未确定的数据类型

标签 android amazon-web-services amazon-dynamodb aws-sdk

使用自定义 Marshaller 我尝试将 DynamoDB 查询映射到对象

class ownObject {
  private int myInteger;

  @DynamoDBMarshalling(marshallerClass = MasrshallAsInteger.class)
  @DynamoDBAttribute      
  public int getMyInteger {
    return myInteger;
  }

  public void setMyInteger(int newint) {
    myInteger = newint;
  }
}

由于数据库中的值myIntegerStringNumber两种类型,SDK抛出异常:"Expected S在值(value) {N:123,}" 如果我使用编码器和 "Expected N in value {S:123,}" 如果我不使用另一个对象。 p>

有什么方法可以强制 DynamoDB 使用自定义编码器并将键的值解析为字符串?或者除了使用 PaginatedQueryList 之外,还有其他方法可以解析未确定类型的数据吗?

最佳答案

我建议您使用 Document SDK 进行分页,将您的项目解析为 Item 对象,进行分页,然后将这些项目转换为您的域。

Table table = new AmazonDynamoDBClient(new DefaultCredentialsProviderChain()).getTable("ownObject");
for (Item item : table.scan()) {
    //convert item to your domain object here
}

关于android - 编码未确定的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42998730/

相关文章:

Android状态栏图标颜色

java - AWS SDK for S3 中的 TransferManager 是否在执行异步 I/O?

java - 使用 DynamoDBMapper 获取所有项目

amazon-web-services - 删除了Route 53托管区域,无法再次正确创建它

reactjs - React 中的 AWS Amplify,如何从订阅的监听器呈现新数据

node.js - 为什么 getItem() 返回 "Invalid attribute value type"?

android - 使用 FFMPEG 调整视频帧大小

java - WebView 自动填充表单

amazon-web-services - 如何设计 DynamoDB 表架构

java - 更新 TextView 中的数组