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数据
- 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其实就是自动的帮你将原始数据加上这些符号,或者相反的,去除这些符号
iOS 如何用JSONKit读写JSON文件的更多相关文章
- python 读写json文件(dump, load),以及对json格式的数据处理(dumps, loads)
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. 1.json.dumps()和json.loads()是json ...
- C++通过jsoncpp类库读写JSON文件-json用法详解
介绍: JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式. JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择. ...
- python 读写 json文件
json的优势: 1. 数据体积方面. JSON相对于XML来讲,数据的体积小,传递的速度更快些. 2. 传输速度方面. JSON的速度要远远快于XML 3. 数据格式 数据格式比较简单, 易于读写, ...
- java如何读写json文件
在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml.json等)也是一种实现方式,但是这有一个弊端 ...
- node读写json文件(进阶)
该方法可用于修改配置文件,直接上代码 fs.readFile('test1.json','utf8',function (err, data) { if(err) console.log(err); ...
- Unity C# 使用JsonUtility读写Json文件
本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/7146731.html 今天,为大家分享一下unity上的Json序列化,应该一说到这个词语 ...
- Python3读写JSON文件
JSON简介 JSON(JavaScript Object Notation)即JavaScript对象表示法,一种轻量级,通用的文本数据格式. JSON语法支持对象(Object),数组(Array ...
- Python读写Json文件
一个小例子,使用Json配置文件 # -*- coding: utf-8 -*- import json import time def store(data): with open('data.js ...
- C# 使用Newtonsoft.Json读写Json文件
{ "CAN": false, "AccCode": 4294901856, "Id": 768, "BPointMove&quo ...
随机推荐
- ⽤运营的思路来做无线产品測试-第13届BQConf上的分享
⽤运营的思路来做无线产品測试,在2014.10.25.第13届B'QConf(北京软件质量大会)上分享的一个主题.主要是关于京东无线測试的一些实践,包含android和ios的代码覆盖率.无线的接口自 ...
- 所谓 A/B test
A/B测试就是上两个方案,部署后看效果.根据效果和一些结果参数决定采用哪个方案.灰度发布是切一部分业务使用新方案,看效果如何,是否有bug,会遇到什么问题.如果一切OK,就把全部业务切到新的方案上执行 ...
- Lintcode---区间求和 I
给定一个整数数组(下标由 0 到 n-1,其中 n 表示数组的规模),以及一个查询列表.每一个查询列表有两个整数 [start, end] . 对于每个查询,计算出数组中从下标 start 到 end ...
- Mac OS 下安装mysql环境
传送门:Mac下安装与配置MySQL mac 上怎么重置mysql的root的密码? 一.下载mysql 进入官方下载地址:https://www.mysql.com/downloads/ 1.找 ...
- Python 实现字符串转换成列表 实现str转换list
其中Python strip() 方法用于移除字符串头尾指定的字符 split()就是将一个字符串分裂成多个字符串组成的列表 >>> image ='1.jsp,2.jsp,3.js ...
- 在ubuntu上使用Virtual-Box安装Mininet
使用Virtual-Box安装Mininet看上去简单,但其中也暗藏许多坑.我自己装了多次Mininet,但每次都有缺陷: mininet访问不了网络 用宿主机访问不了mininet虚拟机 最后,终于 ...
- DISCUZ开启设计插件功能和显示嵌入点功能
DISCUZ开启设计插件功能和显示嵌入点功能 找到config目录下的config_global.php文件.在最后加入 $_config['plugindeveloper'] = 0; $_conf ...
- .net SQL分页
1.分页SQL declare @pagesize integer,@cpage integer; --变量定义 ; --页码大小 ; --当前页 ---@cpage 为 第一页的时候 --selec ...
- windows编译tensorflow c++库
1. 准备 windows 10系统.3.6GHz cpu.16G 内存 visual studio 2017 or 2015 下载安装git 下载安装cmake 下载安装swigwin 如果不需要p ...
- vue render函数
基础 vue推荐在绝大多数情况下使用template来创建你的html.然而在一些场景中,你真的需要javascript的完全编程能力.这就是render函数.它比template更接近编译器 < ...