使用JSONKit将字符串,字典,数组转换成json格式

原文http://blog.sina.com.cn/s/blog_6b8c3d7a01018803.html

一,引入jsonkit

    NSString *str = nil;
    //字符串
    NSMutableString *string = [[NSMutableString alloc] init];
    [string appendString:@"xxxx"];
    str = [string JSONString];
    NSLog(@"str1:%@",[NSString stringWithString:str]);
    
    
    //数组
    NSArray *array = [[NSArray alloc] initWithObjects:@"111",@"333",@"222", nil];
   // NSMutableArray *array = [NSMutableArray array];
    str = [array JSONString];
    NSLog(@"str2:%@",[NSString stringWithString:str]);
    [array release ];
    
    //字典
    NSArray *firstArr = [NSArray arrayWithObjects:@"first",@"second", nil];
    //基本数据类型转换成NSNumber类型
    NSArray *secondArr = [NSArray arrayWithObjects:[NSNumber numberWithDouble:2.1],[NSNumber numberWithBool:NO], nil];
    //加到字典中
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:firstArr,@"first",secondArr,@"second", nil];
    //转化成json格式
    str = [dic JSONString];
    NSString *str2 = [NSString stringWithString:str];
    NSLog(@"str3:%@",str2);
    
    //编码
    NSData *archive = [NSKeyedArchiver archivedDataWithRootObject:array];
    // NSLog(@"archive:%@",archive);
    NSArray *arr2 = [NSKeyedUnarchiver unarchiveObjectWithData:archive];
    NSLog(@"arr2:%@",arr2);

 二,系统自带

// 将数组转JSON
- (NSData *)toJSONData:(id)theData{
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData
                                                       options:NSJSONWritingPrettyPrinted
                                                         error:&error];
    if ([jsonData length] > 0 && error == nil){
        return jsonData;
    }else{
        return nil;
    }
}

NSString *jsonString = [[NSString alloc] initWithData:jsonData  encoding:NSUTF8StringEncoding]; 

 

posted @ 2014-05-02 12:34  huluo666  阅读(1875)  评论(0编辑  收藏  举报