【发布时间】:2017-08-15 15:11:53
【问题描述】:
我在理解如何从我的 Android 应用程序中为 dynamoDB 创建列表时遇到问题。
我可以从我的应用程序中存储和加载{
"deviceId": "920e185a-63ed-46ca-bfca-f7a484ccb708"
}。但是后来添加 List 并将我的 JSON 对象作为 Map 存储在 List 中是我的挣扎。
我要创建和填充的 dynamoDB 结构在 JSON 格式中如下所示:
{
"data": [
{
"heartBeatId": 1,
"status": 1,
"timeStamp": 1502183502711
},
{
"heartBeatId": 2,
"status": 1,
"timeStamp": 1502183502812
}
],
"deviceId": "90563daa-63ae-40c5-905e-9e8c02f9624f"
}
然后我想用 Map 类型的心跳对象填充数据列表。
{
"heartBeatId": 2,
"status": 1,
"timeStamp": 1502183502812
}
所以我在定义 @DynamoDBTable(tableName = "heartbeat") 类来创建这个结构时遇到了问题。
我一直在这里阅读有关 List 和 DynamoDBDocument 的信息:
@DynamoDBTable(tableName = "heartbeat") 类现在的样子。
我希望有人可以帮我定义它或给我线索,告诉我如何继续获得我需要的结构。
package com.example.android.awsdynamoapp;
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBAttribute;
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBDocument;
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBHashKey;
import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBTable;
import java.lang.annotation.Annotation;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@DynamoDBTable(tableName = "heartbeat")
public class HeartBeat implements DynamoDBTable {
private String deviceId;
private Map<String, Integer> data;
private List dataList;
public HeartBeat(){};
public HeartBeat(String deviceId){this.deviceId = deviceId;};
public HeartBeat(String deviceId, List dataList) {
this.deviceId = deviceId;
this.dataList = dataList;
// this.timeStamp = timeStamp;
}
@DynamoDBHashKey(attributeName = "deviceId")
public String getDeviceId() {
return deviceId;
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
}
public void setTimeStamp(String timeStamp) {
//this.timeStamp = timeStamp;
}
public void setData(String deviceId) {
Map<String, Integer> data = new HashMap<>();
}
@DynamoDBAttribute(attributeName = "data")
public List getData() {
return this.dataList;
}
@DynamoDBDocument
public static class JsonArray {
private String heartBeatId;
private String status;
private String timeStamp;
}
/**
* The name of the table to use for this class.
*/
@Override
public String tableName() {
return "heartbeat";
}
@Override
public Class<? extends Annotation> annotationType() {
return null;
}
}
【问题讨论】:
标签: android list amazon-web-services amazon-dynamodb