我使用的是一个dynamodb表,其中dynamodbattributetype.mMap相互嵌套。我遇到问题的表字段如下所示:
"Data": {
"EnglishName": "Balcony",
"High": {
"Status": true,
"Triggered": true,
"Value": 5
},
"Low": {
"Status": true,
"Triggered": false,
"Value": 1
},
"TagName": "tag1"
}
Map的所有键都是字符串,有些值是字符串,有些是Map。在我的java代码中,数据由一个类表示,这个类是另一个类的属性,它表示整个表。属性“low”和“high”也由java类和data类的属性表示。
我尝试过用很多方法将它Map到java对象,主要是通过dynamodbtypeconverter。最困难的是,我找不到任何有关谷歌的信息。我只找到了一个属性类型为s而不是m的converter类示例。
我不断出错:
无法取消插入属性
如何做到这一点?
2条答案
按热度按时间o75abkj41#
最后我有了一个有效的解决方案。基本上,答案是在dynamodbtypeconverter中使用map<string,attributevalue>和所需的对象类型,如下所示:
我还需要将类型转换器写入作为对象的属性,并在类中对它们进行注解:
alertconverter.class是一个普通的dynamodbtypeconverter,它接受<string,alert>。
mnemlml82#
你试过用gson这样的工具吗?如果要将dynamodb响应作为json字符串返回,请尝试以下操作: