用于Android Volley JsonObjectRequest的PHP json_encode返回一个JSONArray

时间:2015-09-09 08:58:16

标签: php android android-volley jsonobject

我想使用PHP从数据库发送JSONObject。 目标是在Android Volley,JsonObjectRequest中接收对象并使用它。

$manually=array(
    'w1' => "wall1.jpg",
    'w2' => "wall2.jpg",
    'w3' => "wall3.jpg",
    );

echo json_encode($manually); //send JSONobject  OK!!

当我创建数组以放入json_encode"手动"时,我的请求会收到一个JSONObject并且正常,但是,当我使用循环填充它时,会收到一个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

enter image description here

在两种情况下我在webbrowser中得到的结果似乎都是一样的...... 据我所知,JSONArray是一个有很多JSONObjects的形状,形状像[{} {}],而且我没有[]括号。如何在我的循环情况下让PHP发送一个简单的对象而不是一个数组呢?

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以尝试在一个关联数组中将其全部包装,其中一个元素与您的数组相关,并且可以正确解释它:

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