iOS 如何用JSONKit读写JSON文件
JSON文件格式简单,使用方便,值得一用。
目前已经有多个库支持Json文件的解析,在这之中,JSONkit用起来方便,而且效率比较高,本文介绍的就是JSONKit的使用方法。
1、准备工作
下载JSONKit包:http://download.csdn.net/detail/enuola/4523160
2、写json文件
- 创建文件
 
//创建文件目录以及文件,需要用到filemanager
- 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其实就是自动的帮你将原始数据加上这些符号,或者相反的,去除这些符号
                    
                
                
            
        
浙公网安备 33010602011771号