I'm trying to get the subnodes of a JSON file usning githubs mantle. This is what I tried:
JSON
"countries": {
"name": "germany",
"population": "80620000000",
"populationInCities": {
"Hamburg": 1799000,
"Berlin": 3502000,
"Munich": 1378000
}
}
CountryInfo.h
#import <Mantle/Mantle.h>
@interface CountryInfo : MTLModel <MTLJSONSerializing>
@property (nonatomic, readonly, copy) NSString *collectionName;
@property (nonatomic, readonly, assign) NSUInteger cPopulation;
@property (nonatomic, readonly, copy) NSArray *populationInCities;
@end
CountryInfo.m
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{ @"cName": @"name",
@"cPopulation": @"population",
@"populationInCities": [NSSet setWithArray:@[ @"Hamburg", @"Hamburg", @"Hamburg"]]
};
}
+ (NSValueTransformer *)populationInCitiesJSONTransformer {
return [NSValueTransformer mtl_JSONArrayTransformerWithModelClass:CountryInfo.class];
}
I'm getting an error when I run my APP:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'populationInCities must either map to a JSON key path or NSNull, got: {
populationInCities = (
Hamburg,
Berlin,
Munich
);
}.'
If you want to store population numbers in
populationInCities
array, you need a custom transformer: