期望Json输出格式与[{},{}]相似

时间:2013-09-12 12:09:36

标签: php ios json

我正在使用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知之甚少。如果有人提出建议,那就太感激了。

2 个答案:

答案 0 :(得分:1)

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

您需要更改代码,如:

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

并访问以下数据:

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

答案 1 :(得分:0)

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

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

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