JsonModel 映射问题
Posted
技术标签:
【中文标题】JsonModel 映射问题【英文标题】:JsonModel Mapping Issue 【发布时间】:2016-07-02 11:02:48 【问题描述】:从我的服务获取后,我正在使用 jsonmodel 来映射我的响应。现在问题是我的服务将响应作为字典数组提供给我,但我无法映射数组,因为它没有分配给任何键。
我有一个名为 ContactsModel.h 的 JsonModel,它保存了所有完美映射的参数标识符,但是我需要获取这个模型的数组。 所以,我创建了另一个 JsonModel,ContactListModel 来保存它。
#import <JSONModel/JSONModel.h>
#import "ContactsModel.h"
@interface ContactListModel : JSONModel
@property(nonatomic, assign) NSArray<ContactsModel> *contacts;
@end
但是请看,我的数组没有分配给任何键。所以,我认为,这就是它无法映射的原因。
谁能帮我处理这种情况。
【问题讨论】:
我看到您收到了一系列字典作为响应,您遇到了什么问题? 有什么错误吗?只是没有数据? 响应对象是一个字典数组,这很酷,但事实是数组没有分配给任何键。所以,我不能做键值对。 可以添加ContactsModel
的声明吗?我觉得里面肯定有问题。或者当您使用NSString
创建contract
时,JSONModel 应该会出现错误
【参考方案1】:
希望这会有所帮助:
NSMutableArray *objects = [NSMutableArray new];
for(NSDictionary *dictionary in responseObject)
[objects addObject:dictionary];
//do your modeling
【讨论】:
【参考方案2】:@娜塔莎
我认为你可以使用 JSONModel 的方法arrayOfModelsFromDictionaries:
因此,在您的请求中,您可以执行以下操作:
NetworkRequest:<whatEverRequest> params:<whatEverParams> completion:(id response)
if([response isKindOfClass:[NSArray class]])
ContactListModel *list = [ContactListModel new];
list.contacts = [ContactsModel arrayOfModelsFromDictionaries: response];
// I just followed the jsonModel API. maybe latest version has initWithArray?
error:(NSError *error)];
希望能解决你的问题
【讨论】:
以上是关于JsonModel 映射问题的主要内容,如果未能解决你的问题,请参考以下文章
在目标 c 中使用 jsonModel 映射时将默认值设置为空字段