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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值