NSDictionary 或者NSArray(NSMutableArray) ==>> NSData ==>> NSString (Json):

以下代碼都有詳細的註釋說明這些類型之間的轉換(如有錯誤的地方還望批評指出,謝謝!)


- (void)viewDidLoad {
    [super viewDidLoad];
    
    /**
     *  NSDictionary ||NSArray(NSMutableArray) ==>> NSData ==>> NSString (Json):
     */
//    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
//                            @"balance", @"key",
//                            @"remaining balance", @"label",
//                            @"45", @"value",
//                            @"USD", @"currencyCode",nil];

    
    NSArray *params = @[@"balance", @"key",
                        @"remaining balance", @"label",
                        @"45", @"value",
                        @"USD", @"currencyCode"];
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:&error];
    NSString *jsonString;
    if ([jsonData length] > 0 && error == nil){
        jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
        NSLog(@"%@",jsonString);
    }else{
        NSLog(@"Erroe:%@",error);
    }
    
    /**
     *  NSString (Json): ==>>NSData ==>> NSDictionary ||NSArray(NSMutableArray)
     */
    //將NSString轉化爲NSData

   NSData *jsonData2 = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
     NSError *error2 = nil;
    id jsonObject  = [NSJSONSerialization JSONObjectWithData:jsonData2 options:kNilOptions error:nil];
    if (jsonObject != nil && error2 == nil){
        NSLog(@"jsonObject == %@",jsonObject);
    }else{
        // 解析錯誤
        NSLog(@"Erroe:%@",error2);
    }
    
    
    /**
     NSData -> NSString
     
     :returns: NSString
     */
//    NSString *tempStr = [[NSString alloc] initWithData:<#(NSData *)#> encoding:<#(NSStringEncoding)#>];
    
    
    /**
     NSString -> NSData
     */
//    NSData *tempData = [[[NSString alloc]init] dataUsingEncoding:<#(NSStringEncoding)#>]
    
    
    
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章