iOS开源项目:JSONKit
2017-06-18 15:57
417 查看
一个Json解析库,其特点是代码简单,只有一个.h和.m文件。
https://github.com/johnezang/JSONKit
JSON(JavaScript Object Notation)是一个轻量级的,基于文本的,序列结构化数据格式. 由RFC 4627定义.提供以下主要类型:
对应的Objective—C的类:
1、使用:
使用上很简单,利用字典键值对获取就行,参考http://stephen830.iteye.com/blog/1718550。
2、原理:
JSONKit的源码只有个两个文件,先看看解析JSON的流程。
这个方法是NSData的Category,里面调用了
JSONDecoder的解析方法:
总的来说,JSONKit对
NSArray
NSString
NSData
NSDictionary
都进行了序列化和反序列化的扩展,可以把这些对象与JSON对象之间相互转换。
由于JSONKit没有使用ARC,所以使用时不要忘了在build phases -》compile sources 选择文件后面加-fno-objc-arc参数。
https://github.com/johnezang/JSONKit
JSON(JavaScript Object Notation)是一个轻量级的,基于文本的,序列结构化数据格式. 由RFC 4627定义.提供以下主要类型:
null Boolean true and false Number String Array Object (a.k.a. Associative Arrays, Key / Value Hash Tables, Maps, Dictionaries, etc.)
对应的Objective—C的类:
JSON | Objective-C |
---|---|
null | NSNull |
trueand false | NSNumber |
Number | NSNumber |
String | NSString |
Array | NSArray |
Object | NSDictionary |
NSString *jsonstring =@"[{\"age\":18,\"book\":{\"price\":23.2,\"title\":\"boook111\"},\"name\":\"samyou\"},{\"age\":22,\"book\":{\"price\":33,\"title\":\"booook222\"},\"name\":\"samsam\"}]"; NSData *data=[jsonstring dataUsingEncoding:NSUTF8StringEncoding]; NSArray *arr=(NSArray *)[data mutableObjectFromJSONData]; NSLog(@"count=%d",arr.count); for(int i=0;i<arr.count;i++) { NSDictionary *people=[arr objectAtIndex:i]; NSString *name=[people objectForKey:@"name"]; NSString *age=[people objectForKey:@"age"]; NSLog(@"person withname=%@,age=%d",name,[age intValue]); NSDictionary *book=[people objectForKey:@"book"]; NSString *bookname=[book objectForKey:@"title"]; NSNumber *price=[book objectForKey:@"price"]; NSLog(@"book with title=%@,price=%f",bookname,[price doubleValue]); }
使用上很简单,利用字典键值对获取就行,参考http://stephen830.iteye.com/blog/1718550。
2、原理:
JSONKit的源码只有个两个文件,先看看解析JSON的流程。
NSArray *arr=(NSArray *)[data mutableObjectFromJSONData];
这个方法是NSData的Category,里面调用了
JSONDecoder的解析方法:
[JSONDecoder decoderWithParseOptions:parseOptionFlags]) mutableObjectWithData:self error:error];
总的来说,JSONKit对
NSArray
NSString
NSData
NSDictionary
都进行了序列化和反序列化的扩展,可以把这些对象与JSON对象之间相互转换。
由于JSONKit没有使用ARC,所以使用时不要忘了在build phases -》compile sources 选择文件后面加-fno-objc-arc参数。
相关文章推荐
- iOS开源项目:JSONKit
- iOS开源:JSONKit
- iOS开源项目HYBHelperKit
- GitHub上7个非常值得学习的iOS开源项目
- iOS超全开源框架、项目和学习资料汇总(2)动画篇
- 关于ios异步加载图片的三个开源项目
- iOS 开源项目[我的衣橱]开发阶段3: 第三方类的使用
- 【代码笔记】iOS-JSONKit的使用
- IOS开源项目汇总
- iOS学习资源汇总(开源项目、第三方库、技术博客等等)
- nRF iOS项目(github开源项目)编译运行相关问题解决方案
- ios推送通知相关开源项目
- 直接拿来用!最火的iOS开源项目(三)
- 实用的Githup上的iOS开源项目
- GitHub 上都有哪些值得关注学习的 iOS 开源项目?
- iOS开发---开源项目和开源类库篇(
- 一些开源的IOS项目(wifi扫描 条形码扫描 tcp/ip 等等)
- Github上600多个iOS开源项目分类及介绍
- iOS app开源项目