我在SongModel.h中有这个:
@interface SongModel : JSONModel
@property (strong, nonatomic) NSString *title;
@property (strong, nonatomic) NSString *artist;
@property (strong, nonatomic) NSDate *start;
@property (strong, nonatomic) NSDate *end;
@property (strong, nonatomic) NSString<Optional> *artistLink;
@property (strong, nonatomic) NSString<Optional> *songLink;
@end
因为artistLink和songLink格式不正确(不是我的)JSON。 它可以是字符串或空对象,我该如何解析它?
JSONModel
不支持“id”类型答案 0 :(得分:0)
我可能接受并id
然后在无法解析时将其设置为[NSNull null]
,或者在可以解析时将其设置为NSString
。
@property (strong, nonatomic) id artistLink;
if (canBeParsed) {
artistLink = @"The string";
} else {
artistLink = [NSNull null];
}
编辑:Martin R.提出了一个很好的观点,这当然是另一种方式。
@property (strong, nonatomic) NSString *artistLink
if (canBeParsed) {
artistLink = @"The string";
} else {
artistLink = nil;
}
答案 1 :(得分:0)
我修理了:
NSRegularExpression *replaceEmptyObject = [NSRegularExpression regularExpressionWithPattern:@"{}/g" options:0 error:nil];
jsonString = [replaceEmptyObject stringByReplacingMatchesInString:jsonString options:0 range:NSMakeRange(0, [jsonString length]) withTemplate:@"\"\""];
也许不是最美丽的方式,但它对我有用。 这是这个json中唯一的空对象。