iOS 如何用JSONKit读写JSON文件

 如何用JSONKit读写JSON文件
分类: ios 510人阅读 评论(0) 收藏 举报

JSON文件格式简单,使用方便,值得一用。

目前已经有多个库支持Json文件的解析,在这之中,JSONkit用起来方便,而且效率比较高,本文介绍的就是JSONKit的使用方法。

1、准备工作

下载JSONKit包:http://download.csdn.net/detail/enuola/4523160

2、写json文件

  • 创建文件

//创建文件目录以及文件,需要用到filemanager

[plain] view plaincopy
  1.       
  2. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  3. NSString *documentsDirectory = [paths objectAtIndex:0];  
  4. testDirectory = [documentsDirectory stringByAppendingPathComponent:@"data"];  
  5. [fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];  
  6. letterllkPath = [testDirectory stringByAppendingPathComponent:@"letterllk.json"];  
  •       打开文件准备写
[plain] view plaincopy
  1. //打开文件,需要用到NSFileHandle  
  2. NSFileHandle *letterHandle = [NSFileHandle fileHandleForWritingAtPath:letterllkPath];  
  • 将内容转换为json数据
JSONkit中支持以下几种数据类型转换:
  • NSString
  • NSArry
  • NSDictionary
使用起来很简单:
[plain] view plaincopy
  1. //原始数据  
  2. NSString *str = ….;  
  3. NSArry *arry = ….;  
  4. NSDictionary *dic = …;  
  5.   
  6. //转换成JSon字符串,就是将原始数据打包  
  7. NSString  *strJson = [str JSONString];  
  8. NSString  *arryJson = [arry JSONString];  
  9. NSString  *dicJson = [dic JSONString];  
  10.   
  11. //或者直接转换成NSData*  
  12. NSData *strData = [str JSONData];  
  13. NSData *arryData = [arry JSONData];  
  14. NSData *dicData = [dic JSONData];  
  • 将转换后的json数据写入文本
[plain] view plaincopy
  1. [letterHandle seekToEndOfFile];  
  2. [letterHandle writeData:[strJson dataUsingEncoding:NSUTF8StringEncoding]];  
  3. 或者  
  4. [letterHandle writeData:strData];  

3、读json文件

  • 读取文件内容
[plain] view plaincopy
  1. NSString *filePath   =  [[NSBundle mainBundle] pathForResource:@"test" ofType:@"json"];  
  2. NSString *jsonString  =   [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];  

  • 用json解析内容
[plain] view plaincopy
  1. //根据json文件,逐层解析  
  2. NSError *error;  
  3. id rawData = [jsonString objectFromJSONStringWithParseOptions:JKParseOptionNone error:&error];  
  4.   
  5. if ( error != nil ) {  
  6. }  
  7.   
  8. if ( [rawData isKindOfClass:[NSDictionary class]] )   
  9. {}  
  10. else if ( [rawData isKindOfClass:[NSArray class]] ) {  
  11. }  
  12. else {  
  13. }  

4、总结

Json的编码格式主要包括:

  • []代表NSArry类
  • {}代表一个对象,比如NSDictionary
  • ,代表对象分隔符
  • :代表键值对,或者可以理解为赋值=

JSONkit其实就是自动的帮你将原始数据加上这些符号,或者相反的,去除这些符号

原文地址:https://www.cnblogs.com/lihaibo-Leao/p/3729822.html