我正在尝试从 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之间感到困惑。任何反馈都将是一个
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);
}
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);
}
}
您的 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);
}
这是适合您内容的正确代码。