相关疑难解决方法(0)

DynamoDB JsonMarshaller无法反序列化对象列表

我有一个Java类,它是DynamoDB中表的数据模型.我想使用Dynamo中的DynamoDBMapperto saveloaditems.该班的一名成员是List<MyObject>.所以我用它JsonMarshaller<List<MyObject>>来序列化和反序列化这个字段.

该列表可以通过成功序列化JsonMarshaller.但是,当我尝试检索条目并读取列表时,它会抛出异常:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to MyObject.看起来JsonMarshaller将数据反序列化为LinkedHashMap而不是MyObject.我该怎样摆脱这个问题?

MCVE:

// Model.java
@DynamoDBTable(tableName = "...")
public class Model {
  private String id;
  private List<MyObject> objects;

  public Model(String id, List<MyObject> objects) {
    this.id = id;
    this.objects = objects;
  }

  @DynamoDBHashKey(attributeName = "id")
  public String getId() { return this.id; }
  public void setId(String id) { this.id = id; }

  @DynamoDBMarshalling(marshallerClass = ObjectListMarshaller.class)
  public …
Run Code Online (Sandbox Code Playgroud)

java jackson amazon-dynamodb

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

amazon-dynamodb ×1

jackson ×1

java ×1