NSDictionary to NSString JSON



我正在尝试从 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);
    }

这是适合您内容的正确代码。

最新更新