PHP json_encode для Android Volley JsonObjectRequest возвращает JSONArray

Я хочу отправить 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 отправлять простой объект, а не массив в моем случае цикла?

введите описание изображения здесь

0

Решение

Вы можете попытаться обернуть все это в ассоциативный массив с одним элементом, который является вашим массивом, и это может быть правильно интерпретировано:

echo json_encode(["walls" => $ar]);
1

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

Других решений пока нет …

По вопросам рекламы [email protected]