講解儲存在 APP 當中,靜態 JSON 檔案的方法
有的時候, OPEN DATA 的資料並不常更新,也許一年才會更新一次,這樣的話,我們可以不用每次需要解析資料的時候都去網路上存取,只需要在本機端存取,而我們需要更新的時候,再把整個 APP 更新就好了.
但是這樣的話,程式勢必跟從網路取不一樣,所以我們來看一下如何從本機端取資料.
NSString *path = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"port.json"];
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
以上是範例程式碼
一開始,記得要用 NSString stringWithContentsOfFile:encoding:error: 的方法,來把檔案讀進來變成字串,而現在我們一般儲存資料都是利用 UTF-8 的編碼儲存,所以 encoding: 就要使用 NSUTF8StringEncoding 才可以.而我們要轉成 NSData 型別的時候,我們同時也要標注那個字串是 UTF-8 .
這樣我們就可以順利的把 UTF-8 編碼的檔案,讀入 NSArray 來使用了.