这个是一些小坑,大牛们忽略。
1.有些时候,后台传输一些json数据会是Unicode码,如果存在在数组里,就更尴尬了,无法转成数组,那么这时候怎么办呢。
这时候,一定要把\U转换成\u,转换成功即可正常使用。
2.如何判断属于什么类型。
数据属于什么类型,使用iskindofclass来进行判断
3.如何将json串转换成dic或array
如果json数据正常,直接使用如图方法,如json数据为单引号,则进行转义。
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];
#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;
}
}