Я не могу найти полезный пример прямо сейчас. У меня есть php-скрипт на моем сервере, который возвращает все данные из выбранных таблиц базы данных. Я пытаюсь получить это с моего устройства ios на стороне клиента и проанализировать этот json, чтобы я мог посмотреть, что там есть, и добавить некоторые из этих данных в мою базу данных sqlite. Я использую fmdb как обертку прямо сейчас. Вот код, у меня есть для подключения к серверу и я не уверен, куда идти оттудаКак получить данные JSON из веб-службы? iOS Objective-c
NSURL *url = [NSURL URLWithString:@"http://index.php"];
NSString * post =[NSString stringWithFormat:@"lang=%@",@"English"];
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setTimeoutInterval:60];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
Мои данные JSON выглядит так
{"login":[{"userid":"1","password":"test","aclevel":"1"}],"answers":[{"aid":"1","qid":"1","sid":"1","freetext":null,"a":null,"b":null,"c":null,"d":null,"e":null,"f":null,"g":null,"h":null,"i":null,"j":null,"synch":null,"type":null},{"aid":"5","qid":"5","sid":"5","freetext":null,"a":null,"b":null,"c":null,"d":null,"e":null,"f":null,"g":null,"h":null,"i":null,"j":null,"synch":null,"type":null}],"projects":{"pid":"3","name":"apmatt","descr":"tapest","creator":"macurlatt","datetime":null,"synch":null},"questions":[{"qid":"1","pid":"1","sid":"1","question":null,"a":null,"b":null,"c":null,"d":null,"e":null,"f":null,"g":null,"h":null,"i":null,"j":null,"synch":null,"type":null}],"surveys":[{"sid":"2","pid":"2","name":"matt","descr":"test","creator":"matt","datetime":null,"synch":null},{"sid":"3","pid":"3","name":"amatt","descr":"taest","creator":"maatt","datetime":null,"synch":null}]}
Я получаю переменную, которая не может быть назначена в приведенном выше коде в строке данных. любые предложения –
@WilliamBrasky Не достал тебя. Что вы имели в виду под переменной? Вы можете получить что-либо в 'responseData', и код должен работать до тех пор, пока вы не получите какой-то действительный JSON. –
Это потому, что вы присваиваете значение переменной, которая была определена вне блока. Измените первую строку на __block id data = nil; – Guferos