使用php进行json编码无法获取[]括号

使用php进行json编码无法获取[]括号,php,json,Php,Json,这是我的密码 <? include '../dbConnect.php'; $amp=trim($_POST['amp']); //$amp='AMP8'; //$sql=mysql_query("select tblRepairQueue.ackNo,tblRepairQueue.repairStatus,tblRepairQueue.savedAt from tblRepairQueue,AMPcustomers where AMPcustomers.phone1=tblRep

这是我的密码

<? 
include '../dbConnect.php';


 $amp=trim($_POST['amp']);
//$amp='AMP8';
//$sql=mysql_query("select tblRepairQueue.ackNo,tblRepairQueue.repairStatus,tblRepairQueue.savedAt from tblRepairQueue,AMPcustomers where AMPcustomers.phone1=tblRepairQueue.phoneNo and AMPcustomers.id='".$amp."'");

$sql=mysql_query("select phone1 from AMPcustomers where id='".$amp."'");
$response = array();
while($row=mysql_fetch_array($sql))
{

$sql_query=mysql_query("select ackNo,repairStatus,savedAt from tblRepairQueue where phoneNo='".$row['phone1']."'");
while($row1=mysql_fetch_array($sql_query)){

    $ackNo=$row1['ackNo'];
$repairStatus=$row1['repairStatus'];
    $savedAt=$row1['savedAt'];

$response[]=array('ackNo'=>$ackNo,'repairStatus'=>$repairStatus,'savedAt'=>$savedAt);
}}
print json_encode($response);

 ?>
但是我希望输出看起来像

[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"031212102614381","repairStatus":"Closed and Complete","savedAt":"2012-12-02 23:05:54"}]

有谁能帮我找出错误,或者做些什么才能得到最后的方括号这有点奇怪,因为我有以下代码:

<?php
$array = array();
$array[] = array("ackNo"=>"26101211236759","repairStatus"=>"Closed and Complete","savedAt"=>"2012-10-26 00:55:25");
$array[] = array("ackNo"=>"26101211236780","repairStatus"=>"Closed and Complete","savedAt"=>"2012-10-26 10:55:25");
echo json_encode($array);
?>

此代码确实应该输出
[{…},…]
。所以我们不能告诉你你到底出了什么问题。在转换为Json之前,请检查
$response
变量的结构,看看哪里出了问题


注意,代码允许SQL注入。您必须更改它,以便在SQL查询中转义参数
$amp
$row['phone1']
。即使您现在依赖magic qoutes,此解决方案也不是未来的证明(现在确实是证明),因为对它的支持已在PHP 5.4中删除。

请重新检查它不能为您提供如下输出:
{“ackNo”:“26101236759”,“repairStatus”:“Closed and Complete”,“savedAt”:“2012-10-26 00:55:25”,“ackNo”:“031212102614381”,“repairStatus”:“已关闭并完成”,“保存日期”:“2012-12-02 23:05:54”}

因为它正在创建一个数组的数组,所以不能这样打印

它总是像纸一样打印

[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"031212102614381","repairStatus":"Closed and Complete","savedAt":"2012-12-02 23:05:54"}]

你所写的应该有用:

//要添加多少个
$response_count=3;
//你的回应,刚刚模板化
$response\u模板=数组(
“响应号”=>0,
'ackNo'=>'dffdgd',
“repairStatus”=>“$repairStatus”,
'savedAt'=>'$savedAt'
);
//您的空响应数组
$response=array();
对于($i=0;$i)
[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"26101211236780","repairStatus":"Closed and Complete","savedAt":"2012-10-26 10:55:25"}]
[{"ackNo":"26101211236759","repairStatus":"Closed and Complete","savedAt":"2012-10-26 00:55:25"},{"ackNo":"031212102614381","repairStatus":"Closed and Complete","savedAt":"2012-12-02 23:05:54"}]
// How many to add
$response_count=3;

// Your response, just templated
$response_template=array(
    'response_number'=>0,
    'ackNo'=>'dffdgd',
    'repairStatus'=>'$repairStatus',
    'savedAt'=>'$savedAt'
);

// Your empty response array
$response = array();

for($i=0;$i<$response_count;$i++) {
    $response_template['response_number'] = $i; // Set the 'response number' to the     itteration.
    $response[]= $response_template; // Add the template to the collection
}

print json_encode($response);