iOS nsarray轉jsonarray

在iOS開發中,網絡請求需要傳數組的時候如果直接把nsarray放到NSDictionary進去的話服務端會不好解析,需要將nsarray轉成
jsonarray[{},{}],代碼如下


+ (NSString *)arrayToJSONString:(NSArray *)arrayData
{
    NSData *data = [NSJSONSerialization dataWithJSONObject:arrayData
                                                   options:NSJSONWritingPrettyPrinted
                                                     error:nil];
    if (data == nil) {
        return nil;
    }
    NSString *string = [[NSString alloc] initWithData:data
                                             encoding:NSUTF8StringEncoding];
    return string;
}

順便再放下自己平時比較常用的NSString與NSDictionary和NSArray之間的轉換方法

+ (NSDictionary *)stringToDic:(NSString *)jsonString
{
    if (jsonString == nil) {
        return nil;
    }
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
                                                        options:NSJSONReadingMutableContainers
                                                          error:&err];
    if(err) {
        NSLog(@"json解析失敗:%@",err);
        return nil;
    }
    return dic;
}

+(NSArray *)stringToArray:(NSString *)jsonString
{
    if (jsonString == nil) {
        return nil;
    }
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSArray *array = [NSJSONSerialization JSONObjectWithData:jsonData
                                                        options:NSJSONReadingMutableContainers
                                                          error:&err];
    if(err) {
        NSLog(@"json解析失敗:%@",err);
        return nil;
    }
    return array;
}

+ (NSString *)dicToString:(NSDictionary *)dicData
{
    if ([dicData count] == 0) {
        return @"";
    }
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dicData options:0 error:0];
   return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章