Я хочу отправить JSONObject из БД с использованием PHP.
Цель состоит в том, чтобы получить объект в Android Volley, JsonObjectRequest и использовать его.
$manually=array(
'w1' => "wall1.jpg",
'w2' => "wall2.jpg",
'w3' => "wall3.jpg",
);
echo json_encode($manually); //send JSONobject OK!!
Когда я создаю массив для помещения в json_encode «вручную», мой запрос получает JSONObject, и everithing в порядке, но когда я заполняю его с помощью цикла, он получает JSONArray («присоединить сообщение об ошибке JSONObjectRequest»).
$ar = array(); //empty array for results
$loop =0;
while($loop<mysql_num_rows($query)){ //iterate for each row
$ar["w".($loop+1)] = mysql_result($query, $loop, "img") ; //associative array
$loop++;
}
echo json_encode($ar); //JSONArray received
Результат, который я получаю в веб-браузере в обоих случаях, кажется одинаковым …
Насколько я знаю, JSONArray — это тот, у которого много JSONObjects, имеющих форму [{} {}], и у меня нет [] скобок. Как я могу заставить PHP отправлять простой объект, а не массив в моем случае цикла?
Вы можете попытаться обернуть все это в ассоциативный массив с одним элементом, который является вашим массивом, и это может быть правильно интерпретировано:
echo json_encode(["walls" => $ar]);
Других решений пока нет …