1

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についてあまり知りません。誰かの提案があればとても感謝しています。

4

2 に答える 2

1

iOS では()配列を{}参照し、辞書を参照します。したがって、正しい応答が得られます。

次のようにコードを変更する必要があります。

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

そして、次のようなデータにアクセスします。

NSMutableDictionary *user = [userDetails objectAtIndex:0];
NSLog(@"ackNo : %@",[user objectForKey:@"ackNo"]);
于 2013-09-12T12:22:43.707 に答える
0

正しい応答が得られています。変更する唯一のことは、応答配列を作成するときに変数の引用符を削除することです。

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

個人的な好みですが、その方が読みやすいと思います。

于 2013-09-12T12:35:22.790 に答える