2012-01-13 2 views
0

Я хочу преобразовать изображение в свою базу данных, чтобы получить его в моих приложениях iAd, и для этого я использую JSON, но я не делаю это правильно.Как разбирать строку JSON в приложениях iPad?

Внутри моя кнопка onTouch я написал этот код

//create string contain url address for php file, the file name is phpFile.php,it receives parameter :name 
NSString *strURL=[NSString stringWithFormat:@"....my.php","hhhhh"]; 

//to execute php code 
NSData *dataURL=[NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 

//to receive the returned Result 
NSString *strResult = [[[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]self]; 
NSLog(@"%@",strResult); 
+0

Не могли бы вы подробно, что вы пробовали и код? – aqua

+0

Внутри моей кнопки onTouch я написал этот код // создаем строку, содержащую url-адрес для php-файла, имя файла phpFile.php, оно получает параметр: name NSString * strURL = [NSString stringWithFormat: @ "http: // WWW ..... my.php», "HHHHH"]; // для выполнения php-кода NSData * dataURL = [NSData dataWithContentsOfURL: [NSURL URLWithString: strURL]]; // для получения возвращенного результата NSString * strResult = [[[NSString alloc] initWithData: dataURL encoding: NSUTF8StringEncoding] self]; NSLog (@ "% @", strResult); – Karna

+0

Я хочу разобрать это и получить всю информацию из строки выше, а затем отобразить все это в моем приложении – Karna

ответ

1

Если вы ориентируетесь IOS 5 или более поздней версии, вы можете использовать NSJSONSerialization класс.

NSError& anError = nil; 
id foo = [NSJSONSerialization JSONObjectWithData: dataURL options: 0 error: &anError]; 
if (foo == nil) 
{ 
    // handle the error 
} 
else 
{ 
    //play with the returned object 
} 

Если вам нужно настроить таргетинг на более раннюю версию прошивки, вам необходимы SBJSON или TouchJSON или аналогичный, но princiiple то же самое.

NB, пожалуйста, также прочитайте URL loading guide, ваш текущий код загружает данные с сервера синхронно. Если это основной поток, пользовательский интерфейс замерзнет, ​​пока вы не получите данные или время соединения.

+0

в моей папке Json ошибка его отображения во всех выпусках .m файлов недоступна, как разрешить эту ошибку – Karna

+0

yep! Я использую ios 5, поскольку мое целевое устройство может кто-то разработать NSSerialization & соответствующее кодирование ??? – Karna

+0

Я не могу подробно остановиться на 'NSJSONSerialization', потому что это действительно почти все, что есть. – JeremyP

2

Существуют различные способы сделать это:

  1. Если цель развертывания IOS 5.0 и выше, вы можете использовать: NSJSonSerialization
  2. если вы хотите поддерживать версии ниже 5.0 вы можете использовать один из многих библиотеки для этого, лично я нахожу SBJson неплохо. Посмотрите на этот фрагмент кода, чтобы получить представление о том:

    NSString *dataString = [[NSString alloc] initWithData:self.receivedData encoding:NSUTF8StringEncoding]; 
    NSDictionary *dic = [dataString JSONValue]; 
    NSArray * element = [dic objectForKey:@"jsonKey"]; 
    NSString * someSimpleElement = [dic objectForKey:@"jsonKey"]; 
    
+0

yep! Я использую ios 5, поскольку мое целевое устройство может кто-то разработать NSSerialization & соответствующее кодирование ??? – Karna

Смежные вопросы