這個是一些小坑碱屁,大牛們忽略。
1.有些時候蛾找,后臺傳輸一些json數(shù)據(jù)會是Unicode碼娩脾,如果存在在數(shù)組里,就更尷尬了打毛,無法轉(zhuǎn)成數(shù)組柿赊,那么這時候怎么辦呢。
例如.png
這時候幻枉,一定要把\U轉(zhuǎn)換成\u碰声,轉(zhuǎn)換成功即可正常使用。
2.如何判斷屬于什么類型熬甫。
數(shù)據(jù)屬于什么類型胰挑,使用iskindofclass來進行判斷
例如.png
3.如何將json串轉(zhuǎn)換成dic或array
如果json數(shù)據(jù)正常,直接使用如圖方法椿肩,如json數(shù)據(jù)為單引號瞻颂,則進行轉(zhuǎn)義。
例如.png
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串轉(zhuǎn)化為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;
}
}