天天看點

iOS 如何用JSONKit讀寫JSON檔案

分類: 2013-04-20 12:46 510人閱讀 (0)  

JSON檔案格式簡單,使用友善,值得一用。

目前已經有多個庫支援Json檔案的解析,在這之中,JSONkit用起來友善,而且效率比較高,本文介紹的就是JSONKit的使用方法。

1、準備工作

下載下傳JSONKit包:

2、寫json檔案

建立檔案

//建立檔案目錄以及檔案,需要用到filemanager

[plain] 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  

NSString *documentsDirectory = [paths objectAtIndex:0];  

testDirectory = [documentsDirectory stringByAppendingPathComponent:@"data"];  

[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];  

letterllkPath = [testDirectory stringByAppendingPathComponent:@"letterllk.json"];  

      打開檔案準備寫

//打開檔案,需要用到NSFileHandle  

NSFileHandle *letterHandle = [NSFileHandle fileHandleForWritingAtPath:letterllkPath];  

将内容轉換為json資料

JSONkit中支援以下幾種資料類型轉換:

NSString

NSArry

NSDictionary

使用起來很簡單:

//原始資料  

NSString *str = ….;  

NSArry *arry = ….;  

NSDictionary *dic = …;  

//轉換成JSon字元串,就是将原始資料打包  

NSString  *strJson = [str JSONString];  

NSString  *arryJson = [arry JSONString];  

NSString  *dicJson = [dic JSONString];  

//或者直接轉換成NSData*  

NSData *strData = [str JSONData];  

NSData *arryData = [arry JSONData];  

NSData *dicData = [dic JSONData];  

将轉換後的json資料寫入文本

[letterHandle seekToEndOfFile];  

[letterHandle writeData:[strJson dataUsingEncoding:NSUTF8StringEncoding]];  

或者  

[letterHandle writeData:strData];  

3、讀json檔案

讀取檔案内容

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

NSString *jsonString  =   [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];  

用json解析内容

//根據json檔案,逐層解析  

NSError *error;  

id rawData = [jsonString objectFromJSONStringWithParseOptions:JKParseOptionNone error:&error];  

if ( error != nil ) {  

}  

if ( [rawData isKindOfClass:[NSDictionary class]] )   

{}  

else if ( [rawData isKindOfClass:[NSArray class]] ) {  

else {  

4、總結

Json的編碼格式主要包括:

[]代表NSArry類

{}代表一個對象,比如NSDictionary

,代表對象分隔符

:代表鍵值對,或者可以了解為指派=

JSONkit其實就是自動的幫你将原始資料加上這些符号,或者相反的,去除這些符号