iOS NSDictionary、NSData、JSONデータ型相互変換

1449 ワード

iOS NSDictionary、NSData、JSONデータ型相互変換
iOSではデータ型の変換が頻繁に必要ですが、一般的な変換を以下に挙げます.
1.NSDictionaryタイプからNSDataタイプへの変換:
//NSDictionary -> NSData:
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                                @"balance", @"key",
                               @"remaining balance", @"label",
                                @"45", @"value",
                                @"USD", @"currencyCode",nil];
         
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:params forKey:@"Some Key Value"];
[archiver finishEncoding];

2.NSDataタイプをNSDictionaryタイプに変換する:
//NSData -> NSDictionary
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDictionary *myDictionary = [[unarchiver decodeObjectForKey:@"Some Key Value"] retain];
[unarchiver finishDecoding];
[unarchiver release];
[data release];

3.NSDictionaryタイプをJSONデータ型に変換する:
//NSDictionary -> JSON:
NSString *jsonStr=[dict JSONRepresentation];

注意JSONとNSDictionaryタイプの変換は一般的に第三者公開のJSONライブラリに用いられ、読者はネット上で多くのことを見つけることができる.