Serialize a custom object with JSONModel

五迷三道 提交于 2019-12-06 09:58:45
@property (nonatomic, strong) NSArray<RegisterBuyerData*> *fields;

should be

@property (nonatomic, strong) NSArray<RegisterBuyerData> *fields;

So get rid of the extra * and try again.

Edit:

Oh, I see. It seems like you haven't declared the types you want to cascade as protocols. So do the following

RegisterBuyerDataOption.h

@protocol RegisterBuyerDataOption @end;

@interface RegisterBuyerDataOption : JSONModel

@property (nonatomic, strong) NSString *key;
@property (nonatomic, strong) NSString *value;
@property (nonatomic, strong) NSNumber *price;
@property (nonatomic, strong) NSNumber *availability;

- (BOOL) isAvailableForUser;

@end

registerBuyerData.h

@protocol RegisterBuyerData @end;

@interface RegisterBuyerData : JSONModel


@property (nonatomic, strong) NSString              *buyerDataID;
@property (nonatomic        ) RegisterBuyerDataType  type;
@property (nonatomic, strong) NSString<Optional>              *title;
@property (nonatomic        ) BOOL                   required;
@property (nonatomic, strong) NSString              *value;
@property (nonatomic)         NSNumber<Optional>              *price;
@property (nonatomic)         NSNumber<Optional>              *availability;

@property (nonatomic, strong) NSArray<RegisterBuyerData*>              *fields;  //array of more RegisterBuyerData
@property (nonatomic, strong) NSArray<RegisterBuyerDataOption*>        *options; //key,value array for dropDown

@property (nonatomic, strong) NSArray                                  *parentValue;
@property (nonatomic, strong) NSArray<RegisterBuyerData*>              *children; //array of more RegisterBuyerData but only for special selected value of an options field

- (BOOL) isAvailableForUser;

@end
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!