Я использую Fast-Android-Networking и хочу отправлять данные на сервер, который содержит строки и массивы. Можно отправить строку, но я не могу отправить массив, а не список массивов. Это простой массив. У меня есть поиск другого решения, но все они касаются залпа. кто-нибудь может помочь? Пожалуйста, не отмечайте дубликаты. Последние 5 параметров являются массивами. Я попробовал это как String.valueOf(ReadQuran), но это тоже не сработало.
Мой код:
AndroidNetworking.post(Api.ROOT_URL +"api/stageFiveFormData")
.addBodyParameter("mto_id",idu)
.addBodyParameter("school_id", scholid)
.addBodyParameter("person_name", personnameS)
.addBodyParameter("designation", designantionS)
.addBodyParameter("cell_number",personcellS)
.addBodyParameter("email",emailpersonS)
.addBodyParameter("whatsapp_number",whatsApppersonS)
.addBodyParameter("school_name",schoolNameS)
.addBodyParameter("postal_address",postalAdressS)
.addBodyParameter("city",cityS)
.addBodyParameter("tehsil",tehsilS)
.addBodyParameter("district",districtS)
.addBodyParameter("s_primary", priamryChecked)
.addBodyParameter("s_middle", middleChecked)
.addBodyParameter("s_high", highChecked)
.addBodyParameter("s_higher", hsChecked)
.addBodyParameter("principal_name", nameOfPrincipalS)
.addBodyParameter("p_contact_num",cellNoPrincipalS)
.addBodyParameter("p_email",emailPrincipalS)
.addBodyParameter("p_whatsapp_number",whatsAppPrincipalS)
.addBodyParameter("class", Class)
.addBodyParameter("rq_book", String.valueOf(ReadQuran))
.addBodyParameter("rqb_qty", String.valueOf(ReadQuranQty))
.addBodyParameter("fq_book", String.valueOf(FehamQuran))
.addBodyParameter("fqb_qty", String.valueOf(FehamQuranQty))
.setPriority(Priority.HIGH)
.build()
.getAsString(new StringRequestListener() {
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
JSONObject jsonObject = jsonArray.getJSONObject(0);
String result = jsonObject.getString("result");
String message = jsonObject.getString("message");
if (result.equalsIgnoreCase("success")) {
Toast.makeText(FormStage5.this, "" + message, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(FormStage5.this, formstage2submittedmsg.class);
startActivity(intent);
pDialog.dismiss();
} else/* (result.equalsIgnoreCase("0"))*/ {
Toast.makeText(FormStage5.this, ""+message, Toast.LENGTH_SHORT).show();
pDialog.dismiss();
}
} catch (JSONException e) {
pDialog.dismiss();
Toast.makeText(FormStage5.this, "Something Went Wrong , Try Again", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onError(ANError anError) {
Toast.makeText(FormStage5.this, "Please Check Your Internet Connection" + anError.toString(), Toast.LENGTH_LONG).show();
pDialog.hide();
}
});




передать arrayname.toString() как значение
Лучший способ — создать класс POJO и установить значение массива, а затем передать его. Он автоматически преобразуется в JSON, если вы используете модернизацию с помощью GSON Converter factory.
В принятом ответе на этот вопрос говорится о модернизации и GSON, а вопрос касается быстрой работы в сети Android. Принятый ответ не сработал для меня.
Я обнаружил, что единственный способ сделать это — построить тело самостоятельно и добавить его в запрос с помощью .addJSONObjectBody.
Я хотел тело, которое выглядит как:
{
"roles": [
"customer-admin"
]
}
Последний способ, который я нашел, который работает:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
JSONObject roles;
try {
roles = new JSONObject();
JSONArray rolesArr = new JSONArray();
rolesArr.put("customer-admin");
roles.put("roles", rolesArr);
} catch (JSONException e) {
// Make error toast here
return;
}
AndroidNetworking.post(url)
.addJSONObjectBody(roles)
.build()
как насчет JSONArray? { "роли": "клиент-администратор", "id": "1" }