Я пишу простой скрипт php / mysql, который получает все «объявления», которые у меня есть в моей базе данных, и возвращает их в формате JSON. Это отлично работает, если я возвращаю только одну строку, десять парсеров разделит каждую строку на индекс массива. Но теперь у меня есть этот код PHP:
<?php // Database credentials $host = 'localhost'; $db = 'project'; $uid = 'root'; $pwd = ''; $SSN = $_GET['ssn']; // Connect to the database server $link = mysql_connect($host, $uid, $pwd) or die("Could not connect"); //select the json database mysql_select_db($db) or die("Could not select database"); // Create an array to hold our results $arr = array(); //Execute the query $rs = mysql_query("SELECT * FROM all_ads WHERE SSN = $SSN ORDER BY datePosted"); // Add the rows to the array while($obj = mysql_fetch_row($rs)) { $arr[] = $obj; } echo json_encode($arr); ?>
И он возвращает следующий формат:
[["4","Hyr ut i natt","321654987","couch_surfing_ads","2011-05-16 13:49:58"],["5","Maybe not","456893214","vacation_resident_ads","2011-05-16 14:22:34"]]
(СОДЕРЖАНИЕ ДВА ОТДЕЛЬНЫХ ОБЪЯВЛЕНИЙ)
Когда xcode возвращает этот массив, он помещает все первое объявление в один индекс массива. Как я могу поместить каждый массив в массив, как это делает вывод JSON?
Как я обрабатываю / десериализую эти данные, это мой основной вопрос!
Благодаря!
Я думаю, вам просто нужно иметь ссылку на два слоя (последняя строка ниже), если я не понимаю что-то:
NSString *response = [[NSString alloc] initWithContentsOfURL:yourSourceUrl]; const char *convert = [response UTF8String]; NSString *responseString = [NSString stringWithUTF8String:convert]; NSArray *ads = [responseString JSONValue]; NSLog(@"%@",[[ads objectAtIndex:0] objectAtIndex:1]); //Hyr ut i natt