android - DynamoDB List type -
i have problems understanding how create list dynamodb android app. can store , load { "deviceid": "920e185a-63ed-46ca-bfca-f7a484ccb708" } app. add list , store json objects map in list struggle.
the dynamodb structure want create , populate looks in json format:
{ "data": [ { "heartbeatid": 1, "status": 1, "timestamp": 1502183502711 }, { "heartbeatid": 2, "status": 1, "timestamp": 1502183502812 } ], "deviceid": "90563daa-63ae-40c5-905e-9e8c02f9624f" } want populate data list heartbeat object of map type. { "heartbeatid": 2, "status": 1, "timestamp": 1502183502812 } im having problems defining @dynamodbtable(tablename = "heartbeat") class create structure.
i have been reading list , dynamodbdocument here:
this how @dynamodbtable(tablename = "heartbeat") class looks right now.
i hope can me define or give me clues on how proceed getting structure need.
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; } /** * name of table use class. */ @override public string tablename() { return "heartbeat"; } @override public class<? extends annotation> annotationtype() { return null; } }
the list of map object can created follows. thing in above structure attributes in data number. can change string if needed well. based on expected output, have defined long.
attribute definition:-
private list<map<string, long>> data; @dynamodbattribute(attributename = "data") public list<map<string, long>> getdata() { return data; } public void setdata(list<map<string, long>> data) { this.data = data; } populate data:-
movieswithdata movies = new movieswithdata(); movies.setyearkey(1917); movies.settitle("tilte list of map"); map<string, long> datamap1 = new hashmap<>(); datamap1.put("heartbeatid", 1l); datamap1.put("status", 1l); datamap1.put("timestamp", 1502183502812l); map<string, long> datamap2 = new hashmap<>(); datamap2.put("heartbeatid", 2l); datamap2.put("status", 2l); datamap2.put("timestamp", 1503183502812l); movies.setdata(arrays.aslist(datamap1, datamap2)); dynamodbmapper.save(movies, consistentdynamodbmapperconfig); sample output:-

Comments
Post a Comment