У меня очень странная проблема. Мне нужно отправить некоторые данные для разрыва, используя библиотеку волейбола в формате Json. Я получу данные из другого API и перенаправляю его на сервер. Теперь проблема в том, что каждый раз, когда я вызываю функцию для создания JSON, она получает последнее значение из списка.Android - Получить последнее предложение из списка
Вот код для преобразования jsonarray
JSONObject mainObject = new JSONObject();
JSONArray jsonBody;
JSONObject object;
Внутри OnClick кнопки создать jsonarray - код ниже
btn_rec_invest_now.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.e(TAG, "Size of list : " + sipDetailses.size());
jsonBody = new JSONArray();
object = new JSONObject();
for (int i = 0; i < sipDetailses.size(); i++) {
String ID = sipDetailses.get(i).getId();
String DATE = sipDetailses.get(i).getSip_date_include();
String AMOUNT = sipDetailses.get(i).getMinimum_investment();
String TENURE = "1";
Log.e(TAG, "ID : " + ID);
Log.e(TAG, "DATE : "
+ sipDetailses.get(i).getSip_date_include());
Log.e(TAG, "AMOUNT : "
+ sipDetailses.get(i).getMinimum_investment());
Log.e(TAG, "TENURE : " + i);
Log.e(TAG, "USER ID : " + "1");
Log.d(TAG, "=================");
try {
object.put("sch_id", sipDetailses.get(i).getId());
object.put("date", DATE);
object.put("amount", AMOUNT);
object.put("tenure", TENURE);
object.put("user_id", "1");
jsonBody.put(object);
} catch (JSONException e) {
Log.d(TAG, "EXCEPTION OCCRUDED: " + e.toString());
}
}
try {
mainObject.put("A", jsonBody);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.e("", "JSONBODY : " + mainObject.toString());
sendDetails(mainObject);
}
});
Значение Я вошел приходит правильно, но sch_id в mainObejct приходит дубликат, здесь json, который был создан
{
"A": [
{
"sch_id": "738",
"date": "1,7,15,25",
"amount": "5000",
"tenure": "1",
"user_id": "1"
},
{
"sch_id": "738",
"date": "1,7,15,25",
"amount": "5000",
"tenure": "1",
"user_id": "1"
},
{
"sch_id": "738",
"date": "1,7,15,25",
"amount": "5000",
"tenure": "1",
"user_id": "1"
}
]
}
Здесь sch_id всегда приходит 738, а - Log.e (TAG, "ID:" + ID); Идентификатор приходит по-разному как некоторое время - 738, 607, 521 и т. Д. - Это подходит. Помогите мне получить правильный sch_id в массиве. Заранее спасибо.
Попробуйте 'jsonBody = mainObject.getJsonArray ("А");' По вашему JSON. –
Где я это делаю? – Shane
Не могли бы вы указать, что содержит 'sipDetailses'? –