转换前数组为
NSArray *testArray = @[@"1",@"2",@"3",@{@"4":@"5"},@[@"6",@"7"]];
转换后字符串为
[1,2,3,{"4":"5"},[6,7]]
如果不是想实现类似需求可以不往下看了。
先实现字典转字符串的分类(数组内类型支持字符串、字典、数组)
#import "NSDictionary+Tool.h"
@implementation NSDictionary (Tool)
- (NSString *)toString
{
NSError *parseError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&parseError];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
return jsonString;
}
@end
然后实现数组转字符串的分类
#import "NSArray+Tool.h"
#import "NSDictionary+Tool.h"
@implementation NSArray (Tool)
- (NSString *)toString
{
if (self.count == 0) {
NSLog(@"数组内容为空");
return @"";
}
NSString *str = @"[";
for (int i = 0;i < self.count;i++) {
if ([self[i] isKindOfClass:[NSString class]]) {
str = [str stringByAppendingString:self[i]];
} else if ([self[i] isKindOfClass:[NSDictionary class]]) {
str = [str stringByAppendingString:((NSDictionary *)self[i]).toString];
} else if ([self[i] isKindOfClass:[NSArray class]]) {
NSArray *temArray = self[i];
str = [str stringByAppendingString:((NSArray *)self[i]).toString];
} else {
NSLog(@"要支持其它类型可在这里添加转换");
}
if (i == self.count - 1) {
str = [str stringByAppendingString:@"]"];
} else {
str = [str stringByAppendingString:@","];
}
}
return str;
}
@end
测试代码
NSArray *testArray = @[@"1",@"2",@"3",@{@"4":@"5"},@[@"6",@"7"]];
NSLog(@"%@",testArray.toString);
输出结果为:(包含换行符)
2018-12-04 17:19:45.735920+0800 Array->String[9539:324573] [1,2,3,{
"4" : "5"
},[6,7]]