期望 json 输出格式类似于 [ { },{ } ]


Expecting Json output Format is Like [ { },{ } ]

我正在使用Json通过webServices检索信息。我在PHP上得到了一个文件来实现它,但是O/P格式不同。

$sql=mysql_query("select phone1 from xxx where id='".$amp."'");
$response = array();
while($row=mysql_fetch_array($sql))
{
//    print_r($row);
    $sql_query=mysql_query("select x,y,z 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);

实际上我在IOS上使用它来解码

    NSMutableDictionary *userDetails = [NSJSONSerialization JSONObjectWithData:returnData
   options:0 error:nil];

我得到的O/p

NSLog(@"%@", userDetails);

(
        {
        ackNo = "21031221201377 ";
        repairStatus = "Closed and Complete";
        savedAt = "0000-00-00 00:00:00";
    }
)

我期待就像[{}, {}]

 [
            {
            ackNo = "21031221201377 ";
            repairStatus = "Closed and Complete";
            savedAt = "0000-00-00 00:00:00";
        }
    ]

如何实现,我对PHP了解不多。如果有人的建议,非常感谢。

在 iOS 中,() 指数组,{}指字典。所以你得到了正确的回应。

您需要更改代码,例如:

NSMutableArray *userDetails = [NSJSONSerialization JSONObjectWithData:returnData
   options:0 error:nil];

并访问以下数据:

NSMutableDictionary *user = [userDetails objectAtIndex:0];
NSLog(@"ackNo : %@",[user objectForKey:@"ackNo"]);

您得到的响应是正确的。我唯一要改变的是创建响应数组时删除变量中的引号。

$response[]=array("ackNo"=>$ackNo,"repairStatus"=>$repairStatus,"savedAt"=>$savedAt);

这是个人选择,但我认为这样更具可读性。