使用PHP难以使用JSON返回对象

时间:2014-01-17 23:06:29

标签: php json

我在这里正确接近了吗?这是我的iOS开发人员要我为他正在处理的应用程序的数据库值做的事情:

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}], “error":""}

现在我的PHP代码是:

if ($stmt = $mysqli->prepare($query)) {
    $stmt->bind_param("sssisi",$lat,$lat,$lng,$rest_price,$rest_genre,$eat_options);
    $stmt->execute();
    $stmt->bind_result($rest_id,$user_id,$rest_name,$lat,$lng,$rest_price,$rest_rating,$rest_genre,$eat_options,$result);
    //define error array
    $errArray = array('error' => '');
    while ($stmt->fetch()) {
        $row = array(
            'restID' => $rest_id,
            'userID' => $user_id,
            'rest_name' => $rest_name,
            'lat' => $lat,
            'lng' => $lng,
            'restPrice' => $rest_price,
            'restRating' => $rest_rating,
            'restGenre' => $rest_genre,
            'eat_options' => $eat_options);

         $rows['array'][] = $row;
    }
    echo json_encode($rows);
}....

其中输出以下内容:

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}]}

注意我无法在那里放入数组,否则我会得到一些疯狂的东西或PHP的语法错误。请指教!如何使用我正在使用的当前代码的第一个示例?我需要在PHP中操作什么?再一次,我想要

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}], “error":""}

不会

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}]} 

3 个答案:

答案 0 :(得分:3)

将错误数组合并到行数组中,如下所示:

echo json_encode(array_merge($rows, $errArray));

答案 1 :(得分:2)

试试这个

$rows['error'] = 'Error message'

答案 2 :(得分:0)

你使errArray成为一个包含一个元素的单独数组,一个名为error的键。您的代码不会将其添加到另一个编码为JSON的代码中。