如何创建JSONModel类的键值是Object或Array

时间:2016-02-19 11:03:55

标签: ios arrays nsdictionary jsonmodel

在我的回复中有一段时间是

 "url": {
    “full_img”: "imagelink",
    “id”: “1”,
    “small_img”: "imagelink",
   }

和一些时间数组

"url": [
      {
       “full_img”: "imagelink",
       “id”: “1”,
       “small_img”: "imagelink",
      },
      {
       “full_img”: “imagelink”,
       “id”: “2”,
       “small_img”: "imagelink",
      }]

在这个我创建一个JsonModel类,但我如何将url类声明为数组或对象,或者我必须为url + json创建两个类?

现在如果Url是Array那个时候我没有任何问题但是当它变成Object时它会给出错误。

错误Domain = JSONModelErrorDomain Code = 1"无效的JSON数据。 JSON类型与预期类型不匹配。检查错误用户信息。" UserInfo = {NSLocalizedDescription =无效的JSON数据。 JSON类型与预期类型不匹配。检查错误用户信息。,kJSONModelTypeMismatch =属性'url'声明为NSArray *但相应的JSON值不是JSON数组。,kJSONModelKeyPath = url

1 个答案:

答案 0 :(得分:0)

1)你的Model类应该是这样的

@interface Image : NSObject

@property (strong,nonatomic) NSString * fullImage;
@property (strong,nonatomic) NSString * id;
@property (strong,nonatomic) NSString * smallImage;

2)你应该在Array&中保留Image个对象。使用索引

使用它

3)使用Array的优点是可以将它与tableView& collectionView非常有效地使用indexpath

4)解析响应后,您可以通过检查类和&来检查响应。使模型对象如下所示

id responseData=[NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
 if ([responseData isKindOfClass:[NSDictionary class]])
     {
        //parse response and add in imageArray
     }
 else if ([responseData isKindOfClass:[NSArray class]])
     {
         //parse each object by enumerating the array & add the parsed object in Image Array

     }
  

您无需创建两个对象,而是可以重复使用它们   Image对象