Использование Android Volley для размещения массива в переполнении стека

Вот как я публикую значения с помощью Volley:

@Override
protected Map<String, String> getParams() {

JSONObject jsonObjectMembers=new JSONObject();
for (int i=0; i<arr_added_userids.size(); i++) {
try {
jsonObjectMembers.put("params_"+i,arr_added_userids.get(i));
} catch (JSONException e) {
e.printStackTrace();
}
}

Map<String, String> params = new HashMap<String, String>();
params.put("host", session_userid);
params.put("params",jsonObjectMembers.toString());
return params;
}

Вот что я попробовал:

foreach($_POST['params'] as $key => $value)
{
try {
$stmt = $conn->prepare("INSERT INTO CREWMEMBERS (CREWID, MEMBER) VALUES
(:crewid, :member)");
$query_params = array(
':crewid' => $crewid,
':member' => $value
);
$stmt->execute($query_params);
$response["success"] = 1;
} catch(PDOException $e) {
//echo 'ERROR: ' . $e->getMessage();
$response["success"] = 3;
}
}

Я всегда получаю org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject

Когда я отправляю $ _POST [‘params’] себе по электронной почте, чтобы посмотреть, как это выглядит, я получаю

{"params_0":"000000000284","params_1":"000000000229","params_2":"000000000081"}

Как мне обрабатывать эти предметы отдельно?

1

Решение

Я только что столкнулся с той же проблемой. Мое решение:

Map<String, String> params = new HashMap<String, String>();
params.put("params[0]", "a");
params.put("params[1]", "b");
params.put("params[2]", "c");
1

Другие решения

Map<String, String> params = new HashMap<String, String>();

params.put("params[0]", "a");

params.put("params[1]", "b");

params.put("params[2]", "c");
0