Adds JSONHelper methods to read numbers as NSNumber objects.

This commit is contained in:
2020-09-17 00:26:58 -07:00
parent bc23b55429
commit 82625d4548
3 changed files with 117 additions and 0 deletions

View File

@@ -14,8 +14,13 @@ NS_ASSUME_NONNULL_BEGIN
+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key;
+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSString* _Nullable)defaultValue;
+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key;
+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSNumber* _Nullable)defaultValue;
+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index;
+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSString* _Nullable)defaultValue;
+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index;
+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSNumber* _Nullable)defaultValue;
@end
NS_ASSUME_NONNULL_END

View File

@@ -18,6 +18,14 @@ NSString* coerceObjectToString(NSObject *object, NSString *defaultValue) {
return defaultValue;
}
NSNumber* coerceObjectToNumber(NSObject *object, NSNumber *defaultValue) {
if ([object isKindOfClass:[NSNumber class]]) {
return (NSNumber*)object;
}
return defaultValue;
}
+(NSString*)readStringFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key {
return [JSONHelper readStringFromDictionary:dictionary forKey:key withDefaultValue:nil];
}
@@ -27,6 +35,15 @@ NSString* coerceObjectToString(NSObject *object, NSString *defaultValue) {
return coerceObjectToString(object, defaultValue);
}
+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key {
return [JSONHelper readNumberFromDictionary:dictionary forKey:key withDefaultValue:nil];
}
+(NSNumber*)readNumberFromDictionary:(NSDictionary*)dictionary forKey:(NSString*)key withDefaultValue:(NSNumber* _Nullable)defaultValue {
NSObject *object = [dictionary objectForKey:key];
return coerceObjectToNumber(object, defaultValue);
}
+(NSString*)readStringFromArray:(NSArray*)array forIndex:(NSUInteger)index{
return [JSONHelper readStringFromArray:array forIndex:index withDefaultValue:nil];
}
@@ -36,4 +53,13 @@ NSString* coerceObjectToString(NSObject *object, NSString *defaultValue) {
return coerceObjectToString(object, defaultValue);
}
+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index {
return [JSONHelper readNumberFromArray:array forIndex:index withDefaultValue:nil];
}
+(NSNumber*)readNumberFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSNumber* _Nullable)defaultValue {
NSObject *object = [array objectAtIndex:index];
return coerceObjectToNumber(object, defaultValue);
}
@end