jsonファイルをローカルから読み込む
2002 ワード
今日はローカルResourceフォルダからjsonファイルを読み込む必要がありますが、次のコードで問題があります.コード1
最初はパスの下に対応するjsonファイルがないと思っていたが、走って行った.appパスの下で見ると、jsonファイルは確かに存在します.
その後、次のコードに変更され、okになりました.コード2
しかし、コードの中にDictionaryオブジェクトを作成する場合は、コード3の方法でローカルファイルに書き、ファイルから読み出すことができます.コード三
私はtestを見に行くことにしました.binはどんな顔をしていますか.test.binがxmlのフォーマットだなんて、使うのも無理はない.
json形式のファイルを読み取ることはできません!
NSString *path = [self pathForLocationsDataFile];
locationDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
// locationDict nil
最初はパスの下に対応するjsonファイルがないと思っていたが、走って行った.appパスの下で見ると、jsonファイルは確かに存在します.
その後、次のコードに変更され、okになりました.
NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"divesite" ofType:@"json"];
NSData *data=[NSData dataWithContentsOfFile:jsonPath];
NSError *error;
id jsonObject=[NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments
error:&error];
しかし、コードの中にDictionaryオブジェクトを作成する場合は、コード3の方法でローカルファイルに書き、ファイルから読み出すことができます.
- (NSString *) pathForDataFile {
NSArray* documentDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* path = nil;
if (documentDir) {
path = [documentDir objectAtIndex:0];
}
return [NSString stringWithFormat:@"%@/%@", path, @"test.bin"];
}
- (void) saveDataToDisk:(NSMutableDictionary*)dict
{
NSString * path = [self pathForDataFile];
if (dict == nil) {
return;
}
[dict writeToFile:path atomically:YES];
}
- (NSMutableDictionary*) loadDataFromDisk
{
NSString * path = [self pathForDataFile];
NSMutableDictionary * rootObject = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
if (rootObject == nil) {
rootObject = [[NSMutableDictionary alloc] initWithCapacity:0];
}
return rootObject;
}
私はtestを見に行くことにしました.binはどんな顔をしていますか.test.binがxmlのフォーマットだなんて、使うのも無理はない.
NSMutableDictionary * rootObject = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
json形式のファイルを読み取ることはできません!