2013-10-23 91 views
1

我试图围绕从JSON数组中拉出一个键值并将其保存为字符串以供稍后进行比较:以下代码使得我的应用程序在获取到代码段时崩溃。我不明白为什么。NSDictionary转换为NSString JSON

我的JSON数组看起来像这样:

[{"User_Id":"CRNA000099","User_Name":"jbliz","User_Fname":"Julia"}] 

我的Xcode:

userarray_login = [NSJSONSerialization JSONObjectWithData:dataURL options:kNilOptions error:&error]; 

NSDictionary* userType = [userarray_login objectForKey:@"User_Name"]; 
NSString *userPermission = [userType objectAtIndex:0]; 

if ([userPermission isEqualToString:@"jbliz"]) 
    { 
    NSLog(@"I should get the avalue here: %@", userPermission); 
} 

我NSDictionary中和的NSString之间的混淆。任何反馈将是

+0

我认为你的应用应该会崩溃。 – Tirth

+0

它甚至没有编译。 –

+0

我的应用程序确实崩溃。这就是我寻求帮助的原因。 :) – Denoteone

回答

1
NSMutableArray *name=[[[NSMutableArray alloc] initWithArray:[userarray_login valueForKey:@"User_Name"]]retain]; 
// Get the only all Names into name Array from json Array 

NSString *userPermission = [name objectAtIndex:0]; // get the first name from Array 

if ([userPermission isEqualToString:@"jbliz"]) 
    { 
    NSLog(@"I should get the avalue here: %@", userPermission); 
} 
+0

试试这个&让我知道如果你有任何问题。 – user1673099

+0

你能解释一下有什么改变吗? –

+0

看到我更新的答案。 – user1673099

1

JSON数组:[{"User_Id":"CRNA000099","User_Name":"jbliz","User_Fname":"Julia"},{},...]一个数组包含词典。

这种尝试像,

NSArray * userarray_login = [NSJSONSerialization JSONObjectWithData:dataURL options:kNilOptions error:&error]; 

    for (NSDictionary * dict in userarray_login) { 
     NSString * name = [dict objectForKey:@"User_Name"]; 
     if ([name isEqualToString:@"jbliz"]) { 
      NSLog(@"Value is here: %@", name); 
     } 
    } 
1

你的JSON有字典的数组,你需要按照下面的步骤,

//NSJSONSerialization return you array in userarray_login 

userarray_login = [NSJSONSerialization JSONObjectWithData:dataURL options:kNilOptions error:&error]; 

//You fetch Dictionary from the array 
    NSDictionary* userType = [userarray_login objectAtIndex:0]; 

//Fetch NSString value using keyValue 
    NSString *userPermission = [userType objectForKey:@"User_Name"]; 

//String comparison 
    if ([userPermission isEqualToString:@"jbliz"]) 
     { 
     NSLog(@"I should get the avalue here: %@", userPermission); 
    } 

这是你的东西,正确的代码。