我在我的转换成DATAS在json
改造来获取一些麻烦。因此,这里是我的工作怎么做。
我有一组数据,我sqlite
数据库,就像这样:
而我所做的就是让这所有的数据并将其转换成json
像这样的:(PS。我有这个链接的代码https://tech.sarathdr.com/convert-database-cursor-result-to-json-array-android-app-development-1b9702fc7bbb。)
public void getdbAndSendData() {
Cursor cursor2=databaseHelper.selectLocationFromLocalDatabaseAll(db);
JSONArray resultSet = new JSONArray();
JSONObject returnObj = new JSONObject();
cursor2.moveToFirst();
while (cursor2.isAfterLast() == false) {
int totalColumn = cursor2.getColumnCount();
JSONObject rowObject = new JSONObject();
for (int i = 0; i < totalColumn; i++) {
if (cursor2.getColumnName(i) != null) {
try {
if (cursor2.getString(i) != null) {
Log.d("TAG_NAME", cursor2.getString(i));
rowObject.put(cursor2.getColumnName(i), cursor2.getString(i));
} else {
rowObject.put(cursor2.getColumnName(i), "");
}
} catch (Exception e) {
Log.d("TAG_NAME", e.getMessage());
}
}
}
resultSet.put(rowObject);
cursor2.moveToNext();
}
cursor2.close();
Log.d("PAkultie", resultSet.toString());
我在调试器的应用程序这样的结果:
因为我已经得到了正确的数据,我想有一个getter setter方法构造,以便它可以调用改造其数据并进行回呼..
无论如何,这是我以前的getter setter方法构造。 (PS。此getter setter方法保存在我的SQLite和发送的改造及其工作逐行数据。但我已经更新我的数据,可以携带多行以改造中一个函数调用发送)
public class MapDetails {
@SerializedName("SerialNumber")
@Expose
private String SerialNumber;
@SerializedName("Coordinate1")
@Expose
private String Coordinate1;
@SerializedName("Coordinate2")
@Expose
private String Coordinate2;
@SerializedName("DateTime")
@Expose
private String DateTime;
@SerializedName("Speed")
@Expose
private String Speed;
@SerializedName("Port")
@Expose
private int Port;
public MapDetails(String serialNumber, String coordinate1, String coordinate2, String dateTime, String speed, int port) {
SerialNumber = serialNumber;
Coordinate1 = coordinate1;
Coordinate2 = coordinate2;
DateTime = dateTime;
Speed = speed;
Port = port;
}
public String getSerialNumber() {
return SerialNumber;
}
public void setSerialNumber(String serialNumber) {
SerialNumber = serialNumber;
}
public String getCoordinate1() {
return Coordinate1;
}
public void setCoordinate1(String coordinate1) {
Coordinate1 = coordinate1;
}
public String getCoordinate2() {
return Coordinate2;
}
public void setCoordinate2(String coordinate2) {
Coordinate2 = coordinate2;
}
public String getDateTime() {
return DateTime;
}
public void setDateTime(String dateTime) {
DateTime = dateTime;
}
public String getSpeed() {
return Speed;
}
public void setSpeed(String speed) {
Speed = speed;
}
public int getPort() {
return Port;
}
public void setPort(int port) {
Port = port;
}
}
FYI:这也是我以前对构造函数代码..
Cursor cursor = databaseHelper.retrieveLocationFromLocalDatabase(db);
while (cursor.moveToNext()) {
serialID =ursor.getString(cursor.getColumnIndex
(DatabaseHelper.SERIALNUMBER));
lati = cursor.getString(cursor.getColumnIndex
(DatabaseHelper.LATITUDE));
longi = cursor.getString(cursor.getColumnIndex
(DatabaseHelper.LONGITUDE));
dateTime = cursor.getString(cursor.getColumnIndex
(DatabaseHelper.DATE_TIME));
speed = cursor.getString(cursor.getColumnIndex
(DatabaseHelper.SPEED));
portss = cursor.getInt(cursor.getColumnIndex(DatabaseHelper.PORT));
}
MapDetails mapDetails = new MapDetails(serialID,
lati, longi, dateTime, speed, portss);
List<MapDetails> data = new ArrayList<>();
data.add(mapDetails);
try {
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("http://" + ADDRESS + ":" + PORT) // this cotains my api link
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
API locate = retrofit.create(API.class);
尝试使用我的代码看,我已经意识到我不是设定我的ArrayList的大小另外,我发现,您可以将您的JSON对象上添加数据有一个JSON阵列和改造之后,将是通过被发送休息JSON数组..
我第一次设定的数组列表,这样,我可以存储JSON对象的更多布赫:
data = new ArrayList<>(20);
其次,我的数据IVE得到每2秒将被添加到我的细节/的JSONObject:
MapDetails mapDetails = new MapDetails(id, lat, lon,well,"2", 9090);
data.add(mapDetails);
这是我的新的数据现在,在我的JSON对象我在debuger发现:(JSONObject的以JSON数组)
并且你可以通过改造,现在送......和现在的工作:)