分类: 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. Java教程到处都是,究竟怎样能学好Java?

    学习Java如何入门?学习教程要点是什么?如何精通?做好以下这些点,入门更快,掌握Java更轻松. Java必备基础知识 1.你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GOF,J2EE ...

  2. jquery easyUi columns日期格式化

    jquery easyUi  columns日期格式化 方法一 Date.prototype.format = function (format) { var o = { "M+" ...

  3. Mongodb - TTL(time to live)特性

    TTL集合支持mongodb对存储的数据进行失效时间设置,经过指定的时间段后.或在指定的时间点过期,集合自动被mongod清除.这一特性有利于对一些只需要保存一定时间的数据信息进行存储,比如机器产生的 ...

  4. android 基于分包方案的修复

    # 本demo实现原理来自 https://github.com/dodola/HotFix https://zhuanlan.zhihu.com/p/20308548 # Anti类功能,及其原理 ...

  5. MDK5.00中*** error 65: access violation at 0xFFFFFFFC : no 'write' permission的一种解决方法

    http://blog.csdn.net/coderfun/article/details/9417289 这是在调试过程中的修改方法,所以在每次运行的时候,都要设置. 先进入调试模式(crtl+F5 ...

  6. Android开发-状态栏着色原理和API版本号兼容处理

    介绍 先上实际效果图,有三个版本号请注意区分API版本号 API>=20 API=19 API<19 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZX ...

  7. [ tarjan + dfs ] poj 2762 Going from u to v or from v to u?

    题目链接: http://poj.org/problem?id=2762 Going from u to v or from v to u? Time Limit: 2000MS   Memory L ...

  8. HTML5与XML的区别

    XHTML 是 XML 风格的 HTML 4.01. HTML5 是HTML的第五大版本,取代 HTML 4.01. XHTML是基于XML发布的HTML规范,旨在规范HTML的格式. 两者提出的目的 ...

  9. tomcat 内存溢出原因分析及解决

    一.错误提示:java.lang.OutOfMemoryError: Java heap space [原因分析] tomcat默认可以使用内存为128MB,在较大型的应用项目中不足以满足运行要求,在 ...

  10. jQuery设置和获取HTML、文本和值

    jQuery设置和获取HTML.文本和值 按 Ctrl+C 复制代码 <script type="text/javascript"> //<![CDATA[ $( ...