原文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];