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

2017-04-24  本文已影响33人  无星灬

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

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

例如.png

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

例如.png

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

例如.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串转化为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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读