ios 使用json
1、从https://github.com/stig/json-framework/中下载json框架:json-framework
2、解压下载的包,将class文件夹下的所有文件导入到当前工程下。
3、在使用的文件中加入导入语句 :#import "SBJson.h"
4、将json字符串转为NSDictionary对象
[cpp] view plain copy
//测试json的解析
-(void)testJsonParser: (NSString *) jsonString
{
jsonString = [[NSString alloc] initWithString:@"{\"userInfo\":{\"userName\":\"张三\",\"sex\":\"男\"}}"];
NSLog(@"正在解析json字符串是:%@",jsonString);
SBJsonParser * parser = [[SBJsonParser alloc] init];
NSError * error = nil;
NSMutableDictionary *jsonDic = [parser objectWithString:jsonString error:&error];
NSMutableDictionary * dicUserInfo = [jsonDic objectForKey:@"userInfo"];
NSLog(@"%@",[jsonDic objectForKey:@"userInfo" ]);
NSLog(@"%@",[dicUserInfo objectForKey:@"userName"]);
NSLog(@"%@",[dicUserInfo objectForKey:@"sex"]);
}
5、 处理json对象有多个记录的方法
[cpp] view plain copy
NSString * customerGridJsonString = [[NSString alloc]initWithString:@"{\"customer\":[{\"name\":\"roamer\",\"ycount\":\"232.4\",\"sumcount\":\"322.3\"},{\"name\":\"王三\",\"ycount\":\"221.2\",\"sumcount\":\"1123.2\"},{\"name\":\"李四\",\"ycount\":\"1221.2\",\"sumcount\":\"12123.2\"}]}"];
SBJsonParser * parser = [[SBJsonParser alloc] init];
// NSLog(@"%@",customerGridJsonString);
NSError * error = nil;
NSMutableDictionary *root = [[NSMutableDictionary alloc] initWithDictionary:[parser objectWithString:customerGridJsonString error:&error]];
NSLog(@"%@",root);
//注意转换代码
SBJsonWriter *jsonWriter = [[SBJsonWriter alloc] init];
NSString *jsonString = [jsonWriter stringWithObject:root];
[jsonWriter release];
NSLog(@"%@",jsonString);
//注意转换代码
NSMutableArray * customers = [root objectForKey:@"customer"];
NSLog(@"%@",customers); http://www.huiyi8.com/moban/
for(NSMutableDictionary * member in customers)
{
NSLog(@"%@",[[member objectForKey:@"name"] description]);
}
6、递归遍历解析出的NSDictionary对象
[cpp] view plain copy
-(void)visitDict:(NSDictionary *)dict{
NSArray *keys=[dict allKeys];
for (NSString *key in keys) {
NSString *result=[NSString stringWithFormat:@"key=%@,value=%@",key,[dict objectForKey:key]];
NSLog(result);
if([[dict objectForKey:key] isKindOfClass:[NSDictionary class]]){
[self visitDict:[dict objectForKey:key]];
}
}
}
7、将解析出的NSDictionary对象还原为json字符串
[cpp] view plain copy网站模板
NSString * jsonStr=[items JSONRepresentation];
ios 使用json的更多相关文章
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- iOS开源JSON解析库MJExtension
iOS中JSON与NSObject互转有两种方式:1.iOS自带类NSJSONSerialization 2.第三方开源库SBJSON.JSONKit.MJExtension.项目中一直用MJExte ...
- **iOS发JSON请求中字符串加转义,返回的JSON去转义
iOS中使用NSSerialization把对象转为JSON字符串后,多出来反斜杠的问题 http://segmentfault.com/q/1010000000576646 NSDictionary ...
- iOS 读取Json 代码
保存一下iOS 读取Json的代码,留着以后Copy用,哈哈. NSString* path = [[NSBundle mainBundle] pathForResource: @"Sand ...
- IOS 解析Json数据(NSJSONSerialization)
● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...
- iOS下JSON反序列化开源库
iOS下JSON字符串反序列化成对象.在正式的项目中比較常见.例如以下几个经常使用开源库.能够依据个人喜好任选其一: 1. JSONModel: https://github.com/icanzilb ...
- iOS解决json串中的NSNull类型
iOS解决json串中的NSNull类型 后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符 ...
- IOS中Json解析的四种方法
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验 ...
- ios中json解析出现的null问题
http://my.oschina.net/iq19900204/blog/408034 在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式. 问题现象 但是几个 ...
随机推荐
- sql server 博客
http://blog.csdn.net/tjvictor/article/category/531421/1 http://blog.csdn.net/zhangqidashu/article/de ...
- 邁向IT專家成功之路的三十則鐵律 鐵律二:IT專家專業之道–專精
在IT技術的領域當中有許多的類別,若要細分那可真是難以一一列舉,但常見的大致有軟體研發工程師.韌體研發工程師.系統分析師.網路工程師.系統工程師.維護工程師.動畫設計師.製圖工程師.以及各類別的專業電 ...
- mac os安装jdk、卸载
1.JAVA版本8u171与8u172的区别 https://blog.csdn.net/u014653815/article/details/80435226 奇数版本是稳定版本,上面修订的所有 ...
- hough变换检测直线和圆
图像测量和机器视觉作业: 提取图像中的直线和点的位置坐标,将其按一定顺序编码存入一文本文件,并在原图像上叠加显示出来. 下午实验了一下: 程序环境:vs2013(活动平台为x64)+opencv3.1 ...
- PS 如何制作柔和的边框
柔和边框制作 1 新建一个图层,按填充为黑色.(填充当前图层为前景色 A/T+Delete 背景色 CTRL+Delete),不透明度设为60%.混合模式为正片叠底, 2 选择椭圆选择一片区域(也 ...
- PHP网站http替换https
PHP网站http替换https
- C++学习总结1
一.内存管理 一般new 与 delete 同时出现.假如释放一个对象用 delete p即可.多个对象用delet [ ]p 即:new与delete需要搭配好. C++继承了C的许多函数,mal ...
- JrtpLib vs2012环境下编译及使用 GotoFirstSourceWithData 方法 进不去
项目中有一项功能是接收rtp数据,接收rtp的可以用PJMedia,可以用JrtpLib.PJMedia库无法解决内外网的问题,只有用Jrtp库了. 首先说下Jrtp 的编译问题,我是在windows ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- 转:scanf的用法
https://blog.csdn.net/u012421456/article/details/18501309 scanf()[通过键盘将数据输入到变量中] 它有两种用法: 用法一: scanf( ...