NSData NSString NSDictionary NSArray conversion
NSObject serialization/deserialization
- Convert NSObject(or your custom object extends from NSObject) to NSDictionary
- Convert NSDictionary to NSData
- Convert NSData to NSString(json format)
NSString <– NSData –> NSDictioanry <–> NSObject
NSString <– NSData –> NSArray
NSData and NSString
NSString *myNSString =
[[NSString alloc]initWithData:myNSData
encoding:NSUTF8StringEncoding];
NSData *myNSData =
[myNSString dataUsingEncoding:NSUTF8StringEncoding];
NSData and NSDictionary
NSDictionary *myNSDictionary =
[NSJSONSerialization JSONObjectWithData:myNSData
options:NSJSONReadingAllowFragments
error:&error];
NSData *jsonData =
[NSJSONSerialization dataWithJSONObject:yourDictionary
options:0 error:&err];
NSData and NSArray
NSData *jsonData =
[NSJSONSerialization dataWithJSONObject:myNSArray
options:NSJSONWritingPrettyPrinted
error:&error];
NSArray *myNSArray = [NSJSONSerialization JSONObjectWithData:myNSData options:NSJSONReadingAllowFragments error:&error];
Getter
Access custom class’s object in NSDictionary
MyClass1 *myClass1 =
[[MyClass1 alloc]initWithNSDictionary:[myNSDictionary objectForKey:@"key1"]];
NSArray *myNSArrayList = [[NSArray alloc]init];
myNSArrayList = [myNSDictionary objectForKey:@"myNSArrayList"];
Access custom class’s object in NSArray
MyClass *myClass =
[[MyClass alloc] initWithNSDictionary:[myNSArray objectAtIndex:i]];
Further Readings:
https://blog.soff.es/archiving-objective-c-objects-with-nscoding