如何在iphone sdk中设置JSON数组?

我有一个login表单,用户只能使用有效的memberIDpassword 。 如果用户input正确的珐琅和密码,我得到的结果string包含用户在注册过程中创build的用户信息,如果密码错误,则显示status 400为结果string,结果string为json数组包含一个f的上述值,一件事是,如果成功login发生它给用户信息staus 200 ,我的需要是从数组中检索状态消息,我需要validation它的应用程序,如果login成功( status 200 )需要redirect到主页面; 如果是( status 400 ),则显示不成功的login消息。 我的代码:编辑

 -(IBAction)_clicksbtnsignIN:(id) sender { [_txtmemberId resignFirstResponder]; [_txtpassword resignFirstResponder]; NSString *connectionstring = [[NSString alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]]; if ([connectionstring length]==0) { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error" message:@"you are not connected to the internet" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil]; [alert show]; [alert release]; } else { //NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString *emailString = _txtmemberId.text; // storing the entered email in a string. // Regular expression to checl the email format. NSString *emailReg = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailReg]; //[pool drain]; if (_txtmemberId.text.length == 0 || _txtpassword.text.length == 0) { UIAlertView *alertblnk = [[UIAlertView alloc]initWithTitle:@"ALERT" message:@"Fill the required text fields" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil]; [alertblnk show]; [alertblnk release]; } if (([emailTest evaluateWithObject:emailString] != YES) || [emailString isEqualToString:@""]) { UIAlertView *loginalert = [[UIAlertView alloc] initWithTitle:@" Alert" message:@"Invalid Email ID" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [loginalert show]; [loginalert release]; } else { [_spinner startAnimating]; NSString *uname = _txtmemberId.text; NSString *pwd = _txtpassword.text; NSString *urlVal = @"http://dev.eltouchapps.net/api/?app=1&type=m1&action=t2&var1="; NSString *urlVal1 = [urlVal stringByAppendingString:uname]; NSString *urlVal2 = [urlVal1 stringByAppendingString:@"&var2="]; NSString *urlVal3 = [urlVal2 stringByAppendingString:pwd]; NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef)urlVal3,NULL, (CFStringRef)@"\n" "",kCFStringEncodingUTF8 ); NSURL *url = [NSURL URLWithString:encodedString]; NSString *resultString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; UIAlertView *loginalert = [[UIAlertView alloc] initWithTitle:@" Message" message:resultString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [loginalert show]; [loginalert release]; lblresult.text = resultString; NSString *responseString = [resultString responseString]; NSLog(@"Got Profile: %@", responseString); NSMutableDictionary *responseJSON = [responseString JSONValue]; NSString *firstName; if ([[responseJSON valueForKey:@"Status"] isEqualToString:@"200"]) // if success { ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil]; //detailViewController.firstString = firstString; // ... // Pass the selected object to the new view controller. [self.navigationController pushViewController:detailViewController animated:YES]; [detailViewController release]; // do something firstName = [responseJSON valueForKey:@"FirstName"]; } } } } 

结果string是为什么我从服务器获得。 我知道有parsing我们想要的JSONB数组,但我不知道如何做到这一点。
提前致谢。

基于你的回应假设,请尝试下面的代码

  NSString *resultString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSMutableDictionary *responseJSON = (NSMutableDictionary *)[responseString JSONValue]; NSString *firstName; if ([[responseJSON valueForKey:@"Status"] isEqualToString:@"200"]) // if success { // do something firstName = [responseJSON valueForKey:@"FirstName"]; } 

希望它给你一个想法。

看看这个JSON框架: https : //github.com/stig/json-framework/