我的GitHub
0%

1.Unicode码出错 2.判断类型 3.json转换字典或数组

这个是一些小坑,大牛们忽略。

1.有些时候,后台传输一些json数据会是Unicode码,如果存在在数组里,就更尴尬了,无法转成数组,那么这时候怎么办呢。

例如.png

这时候,一定要把\U转换成\u,转换成功即可正常使用。
2.如何判断属于什么类型。
数据属于什么类型,使用iskindofclass来进行判断

再例如.png

3.如何将json串转换成dic或array
如果json数据正常,直接使用如图方法,如json数据为单引号,则进行转义。

转换.png

1
2
3
4
5
6
7
8
9
10
11
12
13
    NSString *arrString = [jsonDic valueForKey:@"XXX"];

if ([arrString isKindOfClass:[NSString class]]) {
NSLog(@"NSString类");
}else if([arrString isKindOfClass:[NSArray class]]){
NSLog(@"NSArray类");
}

//如果是单引号加上这句
NSString *str3 = [arrString stringByReplacingOccurrencesOfString:@"'" withString:@"\""];

NSData *arrData = [str3 dataUsingEncoding:NSUTF8StringEncoding];//也可以试试NSASCIIStringEncoding
NSArray *array = [self toArrayOrNSDictionary:arrData];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma mark -- 将JSON串转化为NSDictionary或NSArray
- (id)toArrayOrNSDictionary:(NSData *)jsonData{
NSError *error = nil;
id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingAllowFragments
error:&error];

if (jsonObject != nil && error == nil){
return jsonObject;
}else{
// 解析错误
return nil;
}
}
我是阿星,阿星的阿,阿星的星!