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