2
我嘗試使用iOS的JSONModel框架從我的自定義對象中創建JSON文件。我得到的錯誤:使用JSONModel序列化自定義對象
-[JSONModel.m:1077] EXCEPTION: Invalid type in JSON write (RegisterBuyerDataOption)
-[JSONModel.m:1077] EXCEPTION: Invalid type in JSON write (RegisterBuyerDataOption)
-[JSONModel.m:1077] EXCEPTION: Invalid type in JSON write (RegisterBuyerData)
registerBuyerData.h
@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
registerBuyerData.m
@implementation RegisterBuyerData
- (BOOL) isAvailableForUser{
return (!_availability || [_availability integerValue] > 0);
}
+(JSONKeyMapper*)keyMapper
{
return [[JSONKeyMapper alloc] initWithDictionary:@{@"id": @"buyerDataID",@"value": @"value"}];
}
@end
RegisterBuyerDataOption.h
@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
是沒可能創建一個JSON字符串遞歸?當我調用toJSONString方法時,我得到這些錯誤。
我試過,但Xcode中不想再建:類型參數 'RegisterBuyerData' 必須是指針(需要'*') – tuvok
@tuvok請參閱編輯。 –
thx,這是問題所在。我添加了@protocol RegisterBuyerData @end;並在沒有指針的情況下將數組類型更改爲NSArray。 –
tuvok