在做quhao APP架构时,后台Server端使用了Java,提供WebService,而iOS和Android作为移动客户端。在做数据交互时,Server端返回JSON格式数据。由于iOS SDK中提供的JSON数据解析实在太过麻烦,这里讲下iOS下如何使用SBJson库来解析JSON格式数据。

首先我发起了一个HTTP请求,得到一个response字符串,此字符串是JSON格式:

NSURL *url = [NSURL URLWithString:@"http://192.168.1.2:9081/allCategories"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSError *httpError = [request error];
NSString *response = @"";
if (!httpError) {
response = [request responseString];
// NSLog(@"%@", response);
}

返回的数据格式如下:

[{"count":1000,"cateType":"benbangcai"},{"count":478,"cateType":"hanguoliaoli"},{"count":999,"cateType":"huoguo"},{"count":1000,"cateType":"mianbaodangao"},{"count":998,"cateType":"ribenliaoli"},{"count":1000,"cateType":"tianpinyinpin"},{"count":584,"cateType":"xiangcai"},{"count":999,"cateType":"chuancai"},{"count":260,"cateType":"dongnanyacai"},{"count":311,"cateType":"haixian"},{"count":1000,"cateType":"shaokao"},{"count":984,"cateType":"xiaochikuaican"},{"count":999,"cateType":"xican"},{"count":210,"cateType":"xinjiangqingzhen"},{"count":771,"cateType":"yuecaiguan"},{"count":1000,"cateType":"zhongcancaixi"},{"count":316,"cateType":"zizhucan"}]

我们可以看到JSON数据格式是非常整齐的,下面我们就使用SBJson来解析每一个数据块的2个值:count和cateType。

// 解析Server端返回的JSON数据
SBJsonParser *jsonParser = [[SBJsonParser alloc] init]; //初始化SBJsonParser
NSError *error = nil;
NSArray *jsonObjects = [jsonParser objectWithString:response error:&error];
[jsonParser release], jsonParser = nil; for (NSDictionary *dict in jsonObjects) {
NSString *value1 = [dict objectForKey:@"cateType"];
NSString *value2 = [dict objectForKey:@"count"];
NSLog(@" value1 is : %@", value1);
NSLog(@" value2 is : %@", value2);
}

运行后打印结果:

2013-07-23 21:16:28.962 quhaoIOS[832:c07]  value1 is : benbangcai
2013-07-23 21:16:28.962 quhaoIOS[832:c07] value2 is : 1000
2013-07-23 21:16:28.963 quhaoIOS[832:c07] value1 is : hanguoliaoli
2013-07-23 21:16:28.963 quhaoIOS[832:c07] value2 is : 478
2013-07-23 21:16:28.963 quhaoIOS[832:c07] value1 is : huoguo
2013-07-23 21:16:28.963 quhaoIOS[832:c07] value2 is : 999
2013-07-23 21:16:28.964 quhaoIOS[832:c07] value1 is : mianbaodangao
2013-07-23 21:16:28.964 quhaoIOS[832:c07] value2 is : 1000
2013-07-23 21:16:28.964 quhaoIOS[832:c07] value1 is : ribenliaoli
2013-07-23 21:16:28.964 quhaoIOS[832:c07] value2 is : 998
2013-07-23 21:16:28.965 quhaoIOS[832:c07] value1 is : tianpinyinpin
2013-07-23 21:16:28.965 quhaoIOS[832:c07] value2 is : 1000
2013-07-23 21:16:28.965 quhaoIOS[832:c07] value1 is : xiangcai
2013-07-23 21:16:28.966 quhaoIOS[832:c07] value2 is : 584
2013-07-23 21:16:28.966 quhaoIOS[832:c07] value1 is : chuancai
2013-07-23 21:16:28.966 quhaoIOS[832:c07] value2 is : 999
2013-07-23 21:16:28.966 quhaoIOS[832:c07] value1 is : dongnanyacai
2013-07-23 21:16:28.967 quhaoIOS[832:c07] value2 is : 260
2013-07-23 21:16:28.967 quhaoIOS[832:c07] value1 is : haixian
2013-07-23 21:16:28.967 quhaoIOS[832:c07] value2 is : 311
2013-07-23 21:16:28.967 quhaoIOS[832:c07] value1 is : shaokao
2013-07-23 21:16:28.968 quhaoIOS[832:c07] value2 is : 1000
2013-07-23 21:16:28.968 quhaoIOS[832:c07] value1 is : xiaochikuaican
2013-07-23 21:16:28.968 quhaoIOS[832:c07] value2 is : 984
2013-07-23 21:16:28.969 quhaoIOS[832:c07] value1 is : xican
2013-07-23 21:16:28.969 quhaoIOS[832:c07] value2 is : 999
2013-07-23 21:16:28.969 quhaoIOS[832:c07] value1 is : xinjiangqingzhen
2013-07-23 21:16:28.969 quhaoIOS[832:c07] value2 is : 210
2013-07-23 21:16:28.970 quhaoIOS[832:c07] value1 is : yuecaiguan
2013-07-23 21:16:28.970 quhaoIOS[832:c07] value2 is : 771
2013-07-23 21:16:28.970 quhaoIOS[832:c07] value1 is : zhongcancaixi
2013-07-23 21:16:28.970 quhaoIOS[832:c07] value2 is : 1000
2013-07-23 21:16:28.971 quhaoIOS[832:c07] value1 is : zizhucan
2013-07-23 21:16:28.971 quhaoIOS[832:c07] value2 is : 316
 
 

iOS解析Server端返回JSON数据的更多相关文章

  1. fastjson解析服务端返回的数据

    1.配置依赖 //fastjson api 'com.alibaba:fastjson:1.2.44' 2.设计服务端返回的数据 {},{},{}]} 3.编写bean类,特别注意,要和服务端返回的类 ...

  2. android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据

    补充:关于PHP服务端可能出现的问题: 如果你刚好也像我一样,用php实现的服务端程序,采用的是apache服务器,那么虚拟主机的配置可能会影响到android应用的调试!! 在android应用中访 ...

  3. Query通过Ajax向PHP服务端发送请求并返回JSON数据

    Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...

  4. jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

    SON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教 ...

  5. 【JEMTER】后置处理器JSON Path Extractor获取server端返回的json中某项值

    需求1:点击所有报表模板时,server端返回所有报表模板的ID(templateId),测试时需要下载某个模板生成的报表 需求2:点击单个报表模板时,server端返回这个报表模板下的所有报表ID( ...

  6. Spring MVC返回json数据给Android端

    原先做Android项目时,服务端接口一直是别人写的,自己拿来调用一下,但下个项目,接口也要自己搞定了,我想用Spring MVC框架来提供接口,这两天便抽空浅学了一下该框架以及该框架如何返回json ...

  7. Spring Boot返回json数据及完美使用FastJson解析Json数据

     Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...

  8. 深入了解Struts2返回JSON数据的原理

    首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  9. (转)Struts2返回JSON数据的具体应用范例

    转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

随机推荐

  1. UIMenuController 实现长按显示自定义菜单功能

    这段时间在集成使用融云聊天功能的时候,想自定义消息cell的长按的菜单,在网上查了查,这是根据 UIMenuController 实现的.具体代码如下,我是使用一个btn实现的 首先创建一个btn,并 ...

  2. 编写基于jQuery的插件的方法

    注意:jQuery中有一个extend的方法,这个方法是添加js对象字段的,下面会多次用到 1:添加全局类的方法 常用的ajax就是该类插件,下面要编写一个简单的加法和减法的基于jQuery的方法 $ ...

  3. scrum 4.0

    1.准备看板. 形式参考图4. 2.任务认领,并把认领人标注在看板上的任务标签上. 先由个人主动领任务,PM根据具体情况进行任务的平衡. 然后每个人都着手实现自己的任务. 3.为了团队合作愉快进展顺利 ...

  4. keil 的头文件 .

    许多初学者使用网上下载的程序时都会遇到这样一个问题,就是头文件找不到.我想就这个问题说明一下./·首先,我们用到的KEIL有几种版本的,头文件也不同.有reg51.h和at89x51.h两种比较常见. ...

  5. PROTEL DXP原理图编译 常见错误与处理方法

    一, [Warning] AUDIO.SCH Extra Pin R509-1 in Normal of part R509      [Warning] AUDIO.SCH Extra Pin R5 ...

  6. Asp.Net Web API 2第十八课——Working with Entity Relations in OData

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html. 本文的示例代码的下载地址 ...

  7. UML中依赖(Dependency)和关联(Association)之间的区别

    一般情况下,使用关联(association)来表示像类中的字段等.这个关系是始终存在的,因此你可以随时针对关联项进行访问调用,例如可以始终从 Customer 对象获取 Order 对象.但事实上它 ...

  8. node-webkit教程(11)Platform Service之shell

    node-webkit教程(11)Platform Service之shell 文/玄魂 目录 node-webkit教程(10)Platform Service之shell 前言 11.1  She ...

  9. [ALM]一步一步搭建MS ALM环境 - 安装域服务器

    描述: 搭建并配置域服务器,先安装操作系统,配置网络,安装组件,配置域帐号 步骤: 1,打开Hyper-V Manager,参考[Hyper-V]使用操作系统模板创建新的虚拟机,先完成操作系统的安装, ...

  10. [转]HTTP协议及其请求头分析

      众所周知,Internet的基本协议是TCP/IP协议,目前广泛采用的FTP.Archie Gopher等是建立在TCP/IP协议之上的应用层协议,不同的协议对应着不同的应用.  WWW服务器使用 ...