iOS json的反序列化

作者: 劉光軍_MVP | 来源:发表于2015-11-19 22:29 被阅读1640次

    今天在项目里面遇到需要像服务器回传json格式的情况 以前没有遇到过 下面是解决方法 当然 这里的方法不包含 回去的参数里面有id这种特殊的处理哈 这种方法以后再研究吧

    //  JSONHelper.h
    @interface JSONHelper : NSObject
    + (NSData *)toJSONData:(id)theData;
    
    #import "JSONHelper.h"
    @implementation JSONHelper
    
    + (NSData *)toJSONData:(id)theData {
        JSONHelper *helper = [[JSONHelper alloc]init];
        return [helper toJSONData:theData];
    }
    
    // 将字典或者数组转化为JSON串
    - (NSData *)toJSONData:(id)theData{
        NSError *error = nil;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData
                                                           options:NSJSONWritingPrettyPrinted
                                                             error:&error];
        
        if ([jsonData length] > 0 && error == nil){
            return jsonData;
        }else{
            return nil;
        }
    }
    
    使用时在需要json反序列化的类里面引入头文件
    字典的使用方法
    NSDictionary *dict = @[@"1",@"2",@"3",@"4"];
    NSData *json = [JSONHelper toJSONData: dict];
    回传参数中
    NSDictionary *params = @{@"jsonData":json};
    
    在将data数据作为数组使用的时候 这种时候是什么时候呢 我们在使用tableview的时候 习惯将下载的数据把json数据作为model存放在数组中 当我们使用的时候 首先要从数组中遍历出需要的字典 然后再进行操作
    
    //json格式转化
    
        NSMutableArray *temp = [NSMutableArray array];
        for (int i = 0; i < _touristList.count; i++) {
            AdjustTouristModel *touristModel = [_touristList objectAtIndex:i];
            NSString *price = [NSString stringWithFormat:@"%ld", (long)touristModel.price];
            NSDictionary *tempDict = @{@"tourist_id":touristModel.tourist_id,@"receive": price};
            [temp addObject:tempDict];
        }
        NSData *tourists = [JSONHelper toJSONData:temp];
        NSDictionary *param = @{@"touristsReceive":tourists};
        [_adjustPassParams setValuesForKeysWithDictionary:param];
    

    相关文章

      网友评论

        本文标题:iOS json的反序列化

        本文链接:https://www.haomeiwen.com/subject/wdulhttx.html