0

我有一个 PHP 文件,它目前通过以下两种方式返回 JSON:

如果发生错误,我会这样做:

$post_data = array('error' => "no_member_id");
echo json_encode($post_data);

如果没有错误,并且我需要以 JSON 格式返回数据,我会这样做:

if (mysql_num_rows($result) > 0 )
{
         $rows = array();
         while($r = mysql_fetch_assoc($result))
         {
             $rows[] = $r;
         }

         echo json_encode($rows);
}

但我真正需要做的是以如下格式返回数据:

{"result":"ok", data :[{"data1":"value1", "data2":"value2"}]}

或这个:

{"result":"error", data :[{"error":"no_id"}]}

有人可以帮我理解如何做到这一点吗?

谢谢!!

4

3 回答 3

2
echo json_encode( array( "result" => "ok", "data" => $rows ) );

代替

echo json_encode($rows);
于 2013-03-13T13:22:14.567 回答
1

首先,停止使用mysql内置函数。它们将被弃用。

尝试这个:

$result = 0;
$json = array(
 'result' => 'ok',
 'data'   => array()  
);
if (mysql_num_rows($result) > 0 )
  while($r = mysql_fetch_assoc($result)) {
    $json['data'][] = $r;
  }
} else {
  $json['result'] = 'error';
  $json['data'] = array('error' => "no_member_id");
}
echo json_encode($json);
于 2013-03-13T13:25:00.747 回答
1

只需在两个数组中添加具有特定值的结果键:

echo json_encode(array("result" => "ok", "data" : $rows));

echo json_encode(array("result" => "error", "data" : $post_data));
于 2013-03-13T13:25:05.870 回答