以前は JSON ライブラリを利用してましたが、iOS5 から JSON が標準対応になりました。 JSONテキストファイルを読み込んで、オブジェクト化するのにたった4行と素晴らしい。 (ファイル存在チェックはしてませんが・・・)
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"];
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath];
NSData *data =[fileHandle readDataToEndOfFile];
NSArray *results = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog("%@", results);
NSJSONSerialization の API は以下の通り、非常に少ないのでシンプルです。
#import
@class NSError, NSOutputStream, NSInputStream, NSData;
enum {
NSJSONReadingMutableContainers = (1UL << 0),
NSJSONReadingMutableLeaves = (1UL << 1),
NSJSONReadingAllowFragments = (1UL << 2)
};
typedef NSUInteger NSJSONReadingOptions;
enum {
NSJSONWritingPrettyPrinted = (1UL << 0)
};
typedef NSUInteger NSJSONWritingOptions;
NS_CLASS_AVAILABLE(10_7, 5_0)
@interface NSJSONSerialization : NSObject {
@private
void *reserved[6];
}
+ (BOOL)isValidJSONObject:(id)obj;
+ (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;
+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;
+ (NSInteger)writeJSONObject:(id)obj toStream:(NSOutputStream *)stream options:(NSJSONWritingOptions)opt error:(NSError **)error;
+ (id)JSONObjectWithStream:(NSInputStream *)stream options:(NSJSONReadingOptions)opt error:(NSError **)error;
@end
詳細や実用は、以下のサイトが参考になるかもです。 NSJSONSerialization Class Reference Working with JSON in iOS 5 Tutorial