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 ...
随机推荐
- :not() 选择器选取除了指定元素以外的所有元素
:not() 选择器选取除了指定元素以外的所有元素; 最近有人那上图问:如果触碰li时背景色和字体都变化,但是已经被选中的(现在是第一行)不变怎么办?:not是一个非常简单方便的办法:加入我给已经被选 ...
- cookie_session的详细用法
相对路径与绝对路径 相对路径: 链接地址 <a href="list.do"></a> 表单提交地址 <form action="add. ...
- C# 异或校验算法
C# 的异或校验算法 直接上代码 public partial class FormCRC : Form { public FormCRC() { InitializeComponent(); } p ...
- NFC Basics(基本NFC)——翻译自developer.android.com
NFC Basics 关于收发NDEF格式的消息,以及相关的api. 非NDEFdata以及其它更深入技术请參见Advanced NFC. 在android端使用NDEF有两种情况: - 从标签读取N ...
- ((void *) 0)的含义和void的一些细节
一.在c语言中,0是一个特殊的值,它可以表示:整型数值0,空字符,逻辑假(false).表示的东西多了,有时候不好判断.尤其是空字符和数字0之间. 为了明确的指出,0是空字符的含义,用用到了: (() ...
- mysql 一些常用指令
登陆: mysql -u root -p //登陆,输入root密码 退出登陆 mysql>exit; mysql 为所有ip授权 mysql> GRANT ALL PRIVILEGES ...
- jQuery中的text(),html(),val()有什么区别
text():获取或者改变指定元素的文本html():获取或改变指定元素的html元素以及文本val():获取或者改变指定元素的value值(一般是表单元素) 以上3个都是jquery类库中的语法 第 ...
- android studio - 导入工程报错[Plugin with id 'com.android.application' not found]
出错现象: 大概意思是找不到:com.android.application 插件,以上现象对于初学者来说会经常碰到,下面分析下产生的原因. 原因分析 首先来看看导入后的工程结构: 对于此工程结构,是 ...
- 在drop user之前,建议获取该用户的依赖情况
在删除这两个用户之前,建议获取这两个用户的依赖情况: SQL> col owner format a15 SQL> col name format a15 SQL> col REFE ...
- HttpClient+jsoup登录+解析 163邮箱
找了几个,只有这个靠谱,用的是httpclient4,另外还需要commons-lang和jsoup包 http://jsoup.org/ http://www.oschina.net/code/sn ...