Android JSONArray只返回数据库的最后一项

Android JSONArray只返回数据库的最后一项,android,arrays,Android,Arrays,如何确保数据不重复 JSONObject parasTransDispatch = new JSONObject(); JSONArray jArrayTransDispatch = new JSONArray(); final List<String> dispControlNoArray = new ArrayList<>(); final List<String> dispTripNoArray = ne

如何确保数据不重复

JSONObject parasTransDispatch = new JSONObject();
        JSONArray jArrayTransDispatch = new JSONArray();

        final List<String> dispControlNoArray = new ArrayList<>();
        final List<String> dispTripNoArray = new ArrayList<>();

        while (!cursorDispatch.isAfterLast()) {

            trans_dispatch_returnID = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_ID_RETURN));
            trans_dispatch_eodID = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_EOD_ID));
            trans_dispatch_routeID = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_ROUTE_ID));
            trans_dispatch_controlNo = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_CONTROL_NO));
            trans_dispatch_busNo = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_BUS_NO));
            trans_dispatch_tripNo = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_TRIP_NO));
            trans_dispatch_bound_trip = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_BOUND));
            trans_dispatch_route = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_ROUTE));
            trans_dispatch_trip_type = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_TRIP_TYPE));
            trans_dispatch_passCount = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_PASSENGER_COUNT));
            trans_dispatch_dispId = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_DISPATCHER_ID));
            trans_dispatch_conId = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_CONDUCTOR_ID));
            trans_dispatch_driId = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_DRIVER_ID));
            trans_dispatch_dri2Id = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_DRIVER2_ID));
            trans_dispatch_datetimeStamp = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_DATETIMESTAMP));
            trans_dispatch_long = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_LONG));
            trans_dispatch__lat = cursorDispatch.getString(cursorDispatch.getColumnIndex(DBHelper.TRANS_DISPATCH_LAT));

            dispControlNoArray.add("'" + trans_dispatch_controlNo + "'");
            dispTripNoArray.add("'" + trans_dispatch_tripNo + "'");

            try {
                parasTransDispatch.put("id", trans_dispatch_returnID);
                parasTransDispatch.put("eod_id", trans_dispatch_eodID);
                parasTransDispatch.put("route_id", trans_dispatch_routeID);
                parasTransDispatch.put("company_id", company_id);
                parasTransDispatch.put("subcompany_id", subCompanyID);
                parasTransDispatch.put("route_id", trans_dispatch_routeID);
                parasTransDispatch.put("control_no", trans_dispatch_controlNo);
                parasTransDispatch.put("bus_no", trans_dispatch_busNo);
                parasTransDispatch.put("trip_no", trans_dispatch_tripNo);
                parasTransDispatch.put("bound", trans_dispatch_bound_trip);
                parasTransDispatch.put("route", trans_dispatch_route);
                parasTransDispatch.put("trip_type", trans_dispatch_trip_type);
                parasTransDispatch.put("passenger_count", trans_dispatch_passCount);
                parasTransDispatch.put("dispatcher_id", trans_dispatch_dispId);
                parasTransDispatch.put("conductor_id", trans_dispatch_conId);
                parasTransDispatch.put("driver_id", trans_dispatch_driId);
                parasTransDispatch.put("driver2_id", trans_dispatch_dri2Id);
                parasTransDispatch.put("datetimestamp", trans_dispatch_datetimeStamp);
                parasTransDispatch.put("long", trans_dispatch_long);
                parasTransDispatch.put("lat", trans_dispatch__lat);


                cursorDispatch.moveToNext();

                jArrayTransDispatch.put(parasTransDispatch);


            } catch (JSONException e) {
                e.printStackTrace();
            }
            Log.e("jArrayTransDispatch", String.valueOf(jArrayTransDispatch));

必须在循环的每次迭代中实例化。

您应该在迭代循环中实例化新对象,如@Blackbelt said和之前所述,同时您应该编写这一行

cursorDispatch.moveToNext();

然后,您的输出将是1,2,3,4

假设我有4个数据。结果是1,1,2,3,4
JSONObject parasTransDispatch = new JSONObject();
cursorDispatch.moveToNext();