天天看点

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其实就是自动的帮你将原始数据加上这些符号,或者相反的,去除这些符号