转换成JSON构造器getter和setter

问题描述 投票:0回答:1

我在我的转换成DATAS在json改造来获取一些麻烦。因此,这里是我的工作怎么做。

我有一组数据,我sqlite数据库,就像这样:

enter image description here

而我所做的就是让这所有的数据并将其转换成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());

我在调试器的应用程序这样的结果:

enter image description here

因为我已经得到了正确的数据,我想有一个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);
json sqlite android-studio getter-setter
1个回答
1
投票

尝试使用我的代码看,我已经意识到我不是设定我的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数组)

enter image description here

并且你可以通过改造,现在送......和现在的工作:)

© www.soinside.com 2019 - 2024. All rights reserved.