分類: 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其實就是自動的幫你将原始資料加上這些符号,或者相反的,去除這些符号