分类: ios2013-04-20 12:46 510人阅读 评论(0) 收藏 举报

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

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

1、准备工作

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

2、写json文件

  • 创建文件

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

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

3、读json文件

  • 读取文件内容
  1. NSString *filePath   =  [[NSBundle mainBundle] pathForResource:@"test" ofType:@"json"];
  2. NSString *jsonString  =   [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
  • 用json解析内容
  1. //根据json文件,逐层解析
  2. NSError *error;
  3. id rawData = [jsonString objectFromJSONStringWithParseOptions:JKParseOptionNone error:&error];
  4. if ( error != nil ) {
  5. }
  6. if ( [rawData isKindOfClass:[NSDictionary class]] )
  7. {}
  8. else if ( [rawData isKindOfClass:[NSArray class]] ) {
  9. }
  10. else {
  11. }

4、总结

Json的编码格式主要包括:

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

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

iOS 如何用JSONKit读写JSON文件的更多相关文章

  1. python 读写json文件(dump, load),以及对json格式的数据处理(dumps, loads)

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. 1.json.dumps()和json.loads()是json ...

  2. C++通过jsoncpp类库读写JSON文件-json用法详解

    介绍: JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式. JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择. ...

  3. python 读写 json文件

    json的优势: 1. 数据体积方面. JSON相对于XML来讲,数据的体积小,传递的速度更快些. 2. 传输速度方面. JSON的速度要远远快于XML 3. 数据格式 数据格式比较简单, 易于读写, ...

  4. java如何读写json文件

    在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml.json等)也是一种实现方式,但是这有一个弊端 ...

  5. node读写json文件(进阶)

    该方法可用于修改配置文件,直接上代码 fs.readFile('test1.json','utf8',function (err, data) { if(err) console.log(err); ...

  6. Unity C# 使用JsonUtility读写Json文件

    本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/7146731.html 今天,为大家分享一下unity上的Json序列化,应该一说到这个词语 ...

  7. Python3读写JSON文件

    JSON简介 JSON(JavaScript Object Notation)即JavaScript对象表示法,一种轻量级,通用的文本数据格式. JSON语法支持对象(Object),数组(Array ...

  8. Python读写Json文件

    一个小例子,使用Json配置文件 # -*- coding: utf-8 -*- import json import time def store(data): with open('data.js ...

  9. C# 使用Newtonsoft.Json读写Json文件

    { "CAN": false, "AccCode": 4294901856, "Id": 768, "BPointMove&quo ...

随机推荐

  1. php fpm安装curl后,nginx出现connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)的错误

    这里选择直接apt-get安装,因为比起自己编译简单多了,不需要自己配置什么 #sudo apt-get install curl libcurl3 libcurl3-dev php5-curl 安装 ...

  2. hsqldb

    http://www.hsqldb.org/ HSQLDB (HyperSQL DataBase) is the leading SQL relational database software wr ...

  3. java大数模板

    java 大数计算   这几天做了几道用大数的题,发现java来做大数运算十分方便.对acmer来说是十分实用的 1.valueOf(parament); 将参数转换为制定的类型 比如 int a=3 ...

  4. VS2015许可证过期

    VS2015过期激活方法

  5. Java监听模式

    说明 生活中,监听无处不在.比如说,手机播放音乐功能,也是一种监听:你不点击播放按钮,手机就不放歌,当你点击时,手机就播放音乐.即触发某种行为,便执行相应的动作. 组成 Java监听模式右三个部分组成 ...

  6. oracle字符存储

     substr和substrb 以前知道有substrb,lengthb等函数,也知道它们是以byte来计算长度,可没用过,也不太明白什么地方需要用到它们.一直就是用substr,length,以 ...

  7. C#关键字之Partial详解

    Partial是局部类型的标志.局部类型可以实现将一个类.结构或接口分成几个部分,分别放在在几个不同的.cs文件中(当然也可以放在同一个.cs文件中).在程序进行编译之后,将会合并成一个完整的类.因此 ...

  8. FastDFS安装详解

    1.安装环境 os:centos6.5 Fastdfs版本:FastDFS_v5.08.tar.gz 下载地址:https://sourceforge.net/projects/fastdfs/fil ...

  9. ExtJS TreeGrid的使用方法

    假设您是第一次使用ExtJS的TreeGrid的话,我相信总会有一些小麻烦的,以下就来说一说ExtJS中TreeGrid的使用. 本人使用的ExtJS版本号为4.1.1,而且使用了MVC模式.假设不了 ...

  10. java打印和重写toString

    class Person { private String name; public Person(String name) { this.name=name; } } public classPri ...