Adds JSONHelper methods to make parsing json from strings and NSData objects easier.

This commit is contained in:
2020-09-17 12:58:59 -07:00
parent 74745f6d54
commit 7514237a84
3 changed files with 157 additions and 0 deletions

View File

@@ -38,6 +38,14 @@ NS_ASSUME_NONNULL_BEGIN
+(NSArray*)readArrayFromArray:(NSArray*)array forIndex:(NSUInteger)index;
+(NSArray*)readArrayFromArray:(NSArray*)array forIndex:(NSUInteger)index withDefaultValue:(NSArray* _Nullable)defaultValue;
+(id)parseJSONString:(NSString*)jsonString;
+(NSDictionary*)parseJSONStringAsDictionary:(NSString*)jsonString;
+(NSArray*)parseJSONStringAsArray:(NSString*)jsonString;
+(id)parseJSONData:(NSData*)jsonData;
+(NSDictionary*)parseJSONDataAsDictionary:(NSData*)jsonData;
+(NSArray*)parseJSONDataAsArray:(NSData*)jsonData;
@end
NS_ASSUME_NONNULL_END

View File

@@ -175,4 +175,53 @@ BOOL coerceObjectToBool(NSObject *object, BOOL defaultValue) {
return defaultValue;
}
+(id)parseJSONString:(NSString*)jsonString {
NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
return jsonRoot;
}
+(NSDictionary*)parseJSONStringAsDictionary:(NSString*)jsonString {
NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
if (![jsonRoot isKindOfClass:[NSDictionary class]]) {
return nil;
} else {
return jsonRoot;
}
}
+(NSArray*)parseJSONStringAsArray:(NSString*)jsonString {
NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
if (![jsonRoot isKindOfClass:[NSArray class]]) {
return nil;
} else {
return jsonRoot;
}
}
+(id)parseJSONData:(NSData*)jsonData {
NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
return jsonRoot;
}
+(NSDictionary*)parseJSONDataAsDictionary:(NSData*)jsonData {
NSDictionary *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
if (![jsonRoot isKindOfClass:[NSDictionary class]]) {
return nil;
} else {
return jsonRoot;
}
}
+(NSArray*)parseJSONDataAsArray:(NSData*)jsonData {
NSArray *jsonRoot = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
if (![jsonRoot isKindOfClass:[NSArray class]]) {
return nil;
} else {
return jsonRoot;
}
}
@end