1.首先來一段json給你們看看
responseObject{
message = "訪問成功!!";
result = (
{
attNameList =(
{
attName = "業務申請表";
fileCount = 0;
idList = 107;
remark = "*法人承租人蓋章,實際控制人簽字並提供身份證複印件*自然人承租人及配偶(如已婚)簽字";
},
{
attName = "管理人調查報告";
fileCount = 0;
idList = 108;
remark = "*管理方所表達的意見爲同意該承租人通過*管理人蓋章";
},
{
attName = "風險建議書";
fileCount = 0;
idList = 109;
remark = "*管理方所表達的意見爲同意該承租人通過*管理人蓋章";
}
);
idStage = 1;
nameStage = "資信調查報告";
},
{
attNameList = (
{
attName = "承租人身份證正反面複印件";
fileCount = 0;
idList = 121;
remark = "*身份證在有效期內*承租人簽字按手印*單身不需要提供證明";
},
{
attName = "承租人戶口本整本複印件";
fileCount = 0;
idList = 122;
remark = "*身份證在有效期內*承租人簽字按手印*單身不需要提供證明";
},
{
attName = "承租人結婚證(如已婚)";
fileCount = 0;
idList = 123;
remark = "*身份證在有效期內 *承租人簽字按手印 *單身不需要提供證明";
},
{
attName = "配偶身份證正反面複印件(如已婚)";
fileCount = 0;
idList = 124;
remark = "*證件在有效期 *配偶簽字按手印";
},
{
attName = "扣款協議書(三聯單)";
fileCount = 0;
idList = 125;
remark = "*承租人簽字";
},
{
attName = "扣款卡正反面複印件";
fileCount = 0;
idList = 126;
remark = "*承租人簽字";
},
{
attName = "其他(如有)";
fileCount = 0;
idList = 127;
remark = "*資產證明等";
}
);
idStage = 3;
nameStage = "自然人承租人基礎資料";
},
{
attNameList = (
{
attName = "所有權確認函(如有)";
fileCount = 0;
idList = 128;
remark = "*合同編號、承租人姓名、車輛信息與實際一致 *掛靠公司加蓋公章可使用複印件、原件投放後一週之內補齊";
},
{
attName = "掛靠公司(如有)營業執照複印件";
fileCount = 0;
idList = 129;
remark = "證件照在有效期內 *掛靠公司加蓋公章";
},
{
attName = "掛靠公司(如有)組代證複印件";
fileCount = 0;
idList = 130;
remark = "證件照在有效期內 *掛靠公司加蓋公章";
}
);
idStage = 4;
nameStage = "掛靠材料";
},
{
attNameList = (
{
attName = "經銷商業務確認函";
fileCount = 0;
idList = 131;
remark = "經銷商加蓋公章";
},
{
attName = "融資租賃合同";
fileCount = 0;
idList = 132;
remark = "法人承租人加蓋公章;自然人承租人簽字按手印 *填寫簽訂地點";
},
{
attName = "租賃要素表";
fileCount = 0;
idList = 133;
remark = "合同號、金額、價格信息、車架號與實際一致 *法人承租人加蓋公章;自然人承租人簽字按手印";
},
{
attName = "產品買賣合同";
fileCount = 0;
idList = 134;
remark = "合同號、車輛信息、金額等與實際一致 *法人承租人加蓋公章;自然人承租人簽字按手印 *經銷商加蓋公章";
},
{
attName = "抵押合同";
fileCount = 0;
idList = 135;
remark = "承租人蓋章或掛靠公司蓋公章 注:N爲臺數(掛車業算一臺)";
},
{
attName = "業務管理服務合同";
fileCount = 0;
idList = 136;
remark = "承租人簽字按手印/加蓋公章";
}
);
idStage = 5;
nameStage = "法律要件";
}
);
status = 0;
}
2.網絡請求的時候順便將上面的JSON解析出來
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"idProject"] = self.modelHome.idProject;
params[@"idType"] = @"7";
[self.manager POST:IPaddress@"FileList.html" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
//這個放ModelUpload1模型
self.attNameListArray = [NSMutableArray array];
//這個是最終你要的數據(LargeModel 模型)
self.largeModelArray = [NSMutableArray array];
//第一層 字典
for (NSDictionary *dic in responseObject[@"result"]) {
NSArray *attNameList = dic[@"attNameList"];
//第二層 attNameList裏面(字典)
[self.attNameListArray removeAllObjects];
for (NSDictionary *attNameListDic in attNameList) {
ModelUpload1 *model1 = [[ModelUpload1 alloc]initWithDic:attNameListDic];
//存放ModelUpload1
[self.attNameListArray addObject:model1];
}
ModelUpload *model = [[ModelUpload alloc]init];
[model.attNameList addObjectsFromArray:self.attNameListArray];
model.nameStage = dic[@"nameStage"];
[self.largeModelArray addObject:model];
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
}
3.上面網絡請求的時候基本上一句將JSON解析出來了,然後就是看下模型裏面代碼的編寫.這裏的話就要定義 “”“”兩個模型了
A:第一個模型
上面的代碼是我講這個將達模型裏買放一個小模型,小模型裏面放最底層那個字典數組裏面的元素
大模型裏面.h文件中的內容
#import <Foundation/Foundation.h>
@interface ModelUpload : NSObject
@property (nonatomic, strong)NSMutableArray *attNameList;
@property (nonatomic, copy) NSString *nameStage;
@end
B:大模型.m裏面的代碼
#import "ModelUpload.h"
@implementation ModelUpload
-(NSMutableArray *)attNameList{
if (!_attNameList) {
_attNameList = [NSMutableArray array];
}
return _attNameList;
}
@end
C:小模型.h裏面的內容
#import <Foundation/Foundation.h>
@interface ModelUpload1 : NSObject
@property(nonatomic,strong)NSString *idList;//~>idlist
@property(nonatomic,strong)NSString *remark;
@property(nonatomic,strong)NSString *attName;
@property(nonatomic,strong)NSString *fileCount;
- (instancetype)initWithDic:(NSDictionary *)dic;
@end
.m裏面的代碼
#import "ModelUpload1.h"
@implementation ModelUpload1
- (instancetype)initWithDic:(NSDictionary *)dic {
if (self = [super init]) {
// 這裏是取出字典裏買你的value並且賦值
self.idList = dic[@"idList"];
self.remark = dic[@"remark"];
self.attName = dic[@"attName"];
self.fileCount = dic[@"fileCount"];
}
return self;
}
@end
4.然後就是在tableView裏面去展示了
主要是要理解在網絡請求的時候裏面解析的兩個可變數組裏麪包含的那些內容,基本上就不會錯了,就完成了一個比較難得解析