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 映射问题的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的 JSONModel 问题

在目标 c 中使用 jsonModel 映射时将默认值设置为空字段

使用 JSONModel 将父值映射到嵌套字典中的属性

JSONModel:json到数组?

JsonModel 无法将 json 中的数组转换为 jsonmodel 继承类

JSONModel 嵌套字典数组 JSONModel nest NSDictionary NSArray