JSON-парсер возвращает Null
Я пытаюсь научиться анализировать данные JSON, чтобы обрабатывать большие базы данных. Я написал код для входа на сайт.
У меня есть следующие данные JSON из успешного запроса входа в систему:
<code>JSON string : correct username and password [{"user_id":"7","first_name":"dada","last_name":"Kara","e_mail":"yaka@gmail","fullname":"Dada Kara","forum_username":"ycan"}] </code>
и я использую следующий код для разбора, но он не разбирает его
<code>-(IBAction)loginButton:(id)sender{ NSString *username = usernameTextfield.text; NSString *password = passwordTextfield.text; NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:kPostUrl]]; [request setHTTPMethod:@"POST"]; NSString *post =[[NSString alloc] initWithFormat:@"e_mail=%@&password=%@", username, password]; [request setHTTPBody:[post dataUsingEncoding:NSASCIIStringEncoding]]; NSURLResponse *response; NSError *err; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; //NSString *responseStr = [NSString stringWithUTF8String:[responseData bytes]]; //NSLog(@"Response : %@", responseStr); NSString *json_string = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"JSON string : %@", json_string); SBJsonParser *parser = [[SBJsonParser alloc] init]; NSDictionary *responseObj = [parser objectWithString:json_string error:nil]; NSArray *name = [responseObj objectForKey:@"first_name"]; NSLog(@"Name : %@", name); } </code>
Результат от моегоNSLog
для имениNULL
В чем проблема и как я могу проанализировать такие данные, чтобы, когда дело доходит до множества строк, я мог сохранить их в локальной базе данных FMDB на iphone
------------------------------EDIT---------------------------------------------------------------
Фактическая проблема заключалась в том, что ответная JSON-строка с сервера включала эхо-начало строки, json-анализатор анализировал только двойные кавычки & quot; & quot ;, так что все, что мне было нужно, это обрезать эхо-строку и анализировать новую строку.
и бинго!
<code>//trim in coming echo NSString *newString1 = [json_string stringByReplacingOccurrencesOfString:@"correct username and password\n" withString:@""]; SBJsonParser *parser = [[SBJsonParser alloc] init]; NSArray *responseObj = [parser objectWithString:newString1 error:nil]; NSDictionary *dataDict = [responseObj objectAtIndex:0]; NSString *userID = [dataDict objectForKey:@"user_id"]; NSLog(@"user_id: %@", userID); </code>
вывод: user_id: 7