0

我正在尝试从 mysql 服务器下载一些数据,我想使用 JSON 来解析查询结果。这是PHP

<?php
class Prenotazione {
public $ID_prenotazione;
public $ID_garage;
public $nome_cliente;
public $modello;
public $data;

public function setID_prenotazione($ID_prenotazione){
    $this->ID_prenotazione = $ID_prenotazione;
}
public function setID_garage($ID_garage){
    $this->ID_garage = $ID_garage;
}
public function setNomeCliente($nome_cliente){
    $this->nome_cliente = $nome_cliente;
}
public function setModello($modello){
    $this->modello = $modello;
}
public function setData($data){
    $this->data = $data;
}
}
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("TestRmob");

$password = $_GET['pwd'];


if($password){

    $result = mysql_query("SELECT * FROM `Garage` WHERE `ID_garage` =" .$password);
    $row = mysql_fetch_array($result);

    if($row == FALSE){
        echo "ERRORE";
    } else {

        $result = mysql_query("SELECT * FROM `Prenotazione`WHERE `ID_garage` =". $password);
        $i=0;
        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){

            $prenotazioni[$i] = new Prenotazione;
            $prenotazioni[$i]->setID_prenotazione($row[ID_prenotazione]);
            $prenotazioni[$i]->setID_garage($row[ID_garage]);
            $prenotazioni[$i]->setNomeCliente($row[nome_cliente]);
            $prenotazioni[$i]->setModello($row[modello]);
            $prenotazioni[$i]->setData($row[data]);
            $i++;
        }
    }

    $json_string = json_encode($prenotazioni);
   echo $json_string;
}




    ?>;

这是xcode

-(void)leggiURL{

//[self performSelectorOnMainThread:@selector(creaPrenotazione:)
  //                     withObject:dataURL waitUntilDone:YES];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSString *URL = [NSString stringWithFormat:@"http://localhost:8888/provaJSONclasse.php?pwd=%@",codiceParcheggio ];
    NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:URL]];

    [self performSelectorOnMainThread:@selector(fetchedData:)
                           withObject:dataURL waitUntilDone:YES];; }); 
}

-(void)fetchedData:(NSData * )dataURL{
  NSArray* json = [NSJSONSerialization
                 JSONObjectWithData:dataURL //1
                 options:kNilOptions error:nil];



NSLog(@"elementi arra %d", [json count]);

prenotazioni = [[NSMutableArray alloc] initWithCapacity:[json count]];
for (NSDictionary *dict in json) { //3
    Prenotazione *p = [[Prenotazione alloc] init]; //4
    p.ID_prenotazione = [dict objectForKey:@"ID_prenotazione"];
    NSLog(@"%@ prenotazione numero @", p.ID_prenotazione);
    p.ID_garage = [dict objectForKey:@"ID_garage"];
    p.nomeCliente = [dict objectForKey:@"nome_cliente"];
    p.modello = [dict objectForKey:@"modello"];
    p.data = [dict objectForKey:@"data"];
    [prenotazioni addObject:p];
}

 }

json数组是空的,为什么?当我尝试在浏览器中打印 json 对象时,我可以看到创建 json 对象没有问题,所以问题一定出在 xcode 中

4

1 回答 1

0

你的 php.ini 结尾有一个不需要的分号。

?>;

这会导致您的 json 后面有一个分号,这将使其无效。

通常认为最好不要结束 php 文件?>以避免此类问题。解析器会在到达文件末尾时自动认为 php 标签已关闭。

于 2013-06-16T18:42:41.513 回答