我正在使用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);
这是个人选择,但我认为这样更具可读性。