2015-12-22 4 views
-1

Использование точки останова Я узнал, что каждый объект инициализируется, но значение словаря составляет nil. Что-то не так с синтаксисом?Загрузка данных из локального файла JSON

NSString *fileResource = @"albums"; 
NSString *filePath = [[NSBundle mainBundle]pathForResource:fileResource ofType:@"rtf"]; 
NSLog(@"%@",filePath); 
NSURL *localFileURL = [NSURL fileURLWithPath:filePath]; 
NSData *contentOfLocalFile = [NSData dataWithContentsOfURL:localFileURL]; 
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:contentOfLocalFile options:0 error:nil]; 

JSON файл выглядит следующим образом

{ 
    "Albums": [{ 
     "Title": "Album 1", 
     "Desc": "Description", 
     "images": ["http://img0.etsystatic.com/000/0/6391580/il_fullxfull.340668108.jpg", "https://img1.etsystatic.com/000/0/6515756/il_fullxfull.330077675.jpg", "http://www.betterphoto.com/uploads/processed/0724/0706140402101moore_5-2.jpg"] 
    }, { 
     "Title": "Album 2", 
     "Desc": "Description", 
     "images": ["http://www.betterphoto.com/uploads/processed/0724/0706140402101moore_5-2.jpg", "http://www.artinnaturephotography.com/images/large/06012008_001.jpg", 
      "http://img0.etsystatic.com/000/0/6391580/il_fullxfull.340668108.jpg", "https://img1.etsystatic.com/000/0/6515756/il_fullxfull.330077675.jpg", "http://www.betterphoto.com/uploads/processed/0724/0706140402101moore_5-2.jpg" 
     ] 
    }] 
} 
+0

использования в 'error' имущества из' JSONObjectWithData: опции: ошибка: 'метод и посмотреть, что ошибка. – rmaddy

+0

добавить ошибку NSError *; [NSJSONSerialization JSONObjectWithData: contentOfLocalFile options: 0 error: error]; Он покажет ошибку, что это такое. –

+0

@rmaddy Показывает, что данные не могут быть прочитаны, потому что они не в правильном формате. – Rishab

ответ

0

Попробуйте это я должен работать, вы используете РТФ вместо JSON

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"albums" ofType:@"json"]; 
    NSData *JSONData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:nil]; 

    NSError *readerror; 

    id jsonObject = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableContainers error:&readerror]; 
-1

Для загрузки локального файла JSON в ваш проект, используется по умолчанию GeoJson вместо использования файла rtf. GeoJson

Вы можете retrive данные как этот

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"json"]; 

NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL]; 

NSError *error = nil; 

//// if it is array 
NSArray *jsonDataArray = [NSJSONSerialization JSONObjectWithData:[myJSON dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&error]; 
Смежные вопросы