1. 程式人生 > >iOS開發學習專題-基礎知識(三)NSDictionary字典NSMutableDictionary可變字典NSDictionary字典和json轉換詳細使用方式

iOS開發學習專題-基礎知識(三)NSDictionary字典NSMutableDictionary可變字典NSDictionary字典和json轉換詳細使用方式

本文主要講解的是不可變字典NSDictionary可變字典NSMutableDictionary字典NSDictionary和Json轉換詳細使用方式包括型別和值之間的轉換 文章是博主原創,轉載請標明出處http://blog.csdn.net/werctzzz/article/details/71713293 首先來看看不可變的字典
#pragma mark NSDictionary 不可變字典
    // NSDictionary用於鍵值對映
    // 1.字典的初始化(常見的幾種方式)
    NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"@123" forKey:@"key1"];
    NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2" ,nil];
    NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic1];
    NSDictionary *dic4 = @{@"key1": @"value1",@"key2": @"value2"};
    NSString * path = @"路徑";
    NSDictionary *dic5 = [NSDictionary dictionaryWithContentsOfFile:path];

    // 2.字典的常用操作
    // key - value ;輸入的時候 [值 - 鍵]
    NSLog(@"%@",dic1);
    //輸出的時候 為 [鍵 - 值];
    
    //2.值得獲取和遍歷
        // 2.1
        NSArray *key = [dic1 allKeys];
        NSLog(@"%@", key);
        
        // 2.2獲取所有value值
        NSArray *value = [dic1 allValues];
        NSLog(@"%@", value);
        
        // 2.3通過key查詢value
        NSString *name = [dic1 objectForKeyedSubscript:@"name"];
        NSLog(@"%@", name);//查詢name key 對應的 value 值
        
        // 2.4根據allkeys陣列獲取字典中所有的key - value對
            //間接遍歷
            for (NSString *key1 in key) {
                NSString *value = [dic1 objectForKey:key1];
                NSLog(@"%@ = %@:", key1 ,value);
            }
            //直接遍歷
            for (NSString *key1 in dic1) {
                NSString *value = [dic1 objectForKey:key1];
                NSLog(@"%@ = %@", key1 ,value);
            }


然後是可變字典的方法
#pragma mark NSMutableDictionary 可變字典
    //NSMutableDictionary
        //1.建立初始化
        NSMutableDictionary * mdic = [NSMutableDictionary dictionaryWithDictionary:dic2];
        //通過不可變的dic1傳來的值,建立可變的字典
        
        //2.新增鍵值對 和 設定
            // 2.1新增一個指定鍵值對
            [mdic setValue:@"wu dang" forKey:@"attribute"];
            NSLog(@"%@", mdic);
            // 2.2像字典中新增整個字典物件
            [mdic addEntriesFromDictionary:dic1];
            // 2.3把字典內容設定與指定字典的內容相同
            [mdic setDictionary:dic1];
    
        //3.修改key 對應的value
        [mdic setValue:@"shan jia" forKey:@"hobby"];
        NSLog(@"%@", mdic);
        
        //4.刪除鍵值對
            // 4.1刪除制定鍵值對
            [mdic removeObjectForKey:@"sex"];
            NSLog(@"%@", dic2);
            // 4.2刪除在陣列中包含的指定key的對應的值
            NSArray *array = @[@"key1",@"key2",@"key3"];
            [mdic removeObjectsForKeys:array];
            // 4.3刪除字典中的所有物件
            [mdic removeAllObjects];
最後就是常用的字典和json互相轉換的方法,很實用~
#pragma mark NSDictionary 和 json 的互相轉化
    // 1.字典轉成json
    NSDictionary *jsondic = [NSDictionary dictionaryWithObjectsAndKeys:
                          @"zhang san",@"name",
                          @"men",@"sex",
                          @"playgame",@"hobby",
                          @"347",@"age",nil];
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsondic options:NSJSONWritingPrettyPrinted error:nil];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    
    // 2.json轉成字典
    NSData *data =  [jsonString dataUsingEncoding:NSASCIIStringEncoding];
    NSDictionary * jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];