로컬에서 json 파일 읽기

2000 단어
오늘 로컬 Resource 폴더에서 json 파일을 읽어야 하는데 다음 코드에 문제가 있습니다.
4
  • 코드 1
  • NSString *path = [self pathForLocationsDataFile];
    locationDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
    // locationDict   nil
    

    처음에는 경로 아래에 대응하는 json 파일이 없는 줄 알았는데, 나중에 달려갔다.app 경로를 보면 json 파일이 확실히 존재합니다.
    나중에 다음과 같은 코드로 변경, ok
    4
  • 코드 2
  • 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의 방법으로 로컬 파일에 쓰고 파일에서 읽을 수 있습니다.
    4
  • 코드 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이 xml 형식이라니, 어쩐지 사용하더라니.
    NSMutableDictionary * rootObject = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
    

    json 형식의 파일을 읽을 수 없습니다!

    좋은 웹페이지 즐겨찾기