一、准备工作:
1、将SBJsonClasses 加入项目中。
SBJsonClasses 是一个很好的IOS Json解析库,源码可网上下载,也可在本文中下载。zip 是在Mac下生成的压缩包,rar是在windows xp下生成的压缩包,选择一个适合你电脑操作系统的下载,解压缩后加入项目中即可使用。
2、将ASIHTTPRequest加入项目中。
ASIHTTPRequest开源项目类,开源源码可网上下载,也可在本博客博文“IOS手机端应用程序调用WebService”中下载。
3、在.h文件中引入:
#import "ASIHTTPRequest.h"
#import "ASINetworkQueue.h"
#import "ASIFormDataRequest.h"
#import "SBJson.h"
4、JSON数据格式:
{"result":"true","dinnerSysUserList":[ {"id":"402880e538b30fdf0138b312c6250001","name":"王宏语","phoneCornet":"18660198765","remark":" “中国”又以“中华”、“华夏”、“神州”等。","img":"-492230611350993686639.jpg"}, {"id":"402880e538b30fdf0138b313278f0002","name":"张小风","phoneCornet":"18660181987","remark":"“中国”又以“中华”、“华夏”、“神州”等代称出现,最早指“天下的中心”,即黄河中下游的中原河洛地带,后逐渐含有王朝统治的正统性含义。","img":"-6750192661350993663686.jpg"}, {"id":"402881503a96d695013a96d822100001","name":"张小武","phoneCornet":"18776787765","remark":" 张小武山东省位于中国东部沿海、黄河下游、京杭大运河的中北段,古为齐鲁之地。西部连接内陆,从北向南分别与河北、河南、安徽、江苏四省接壤;中部高突,泰山是全境最高点;","img":"14283978301351150477824.jpg"} ]}
二、JSON数据解析代码:
NSString *nstrUrl = [NSString stringWithFormat:@"%@",@” http://域名:端口/文件夹/phoneRemark.do?act=DownloadCusManager”]; //Servlet访问路径字符串 NSString *encodedURL = [nstrUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //对Servlet访问路径字符串进行编码 ASIFormDataRequest *asiHttpRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:encodedURL]]; // ASIFormDataRequest为ASIHTTPRequest开源项目提供的类,开源源码可网上下载,也可在本博客博文“IOS手机端应用程序调用WebService”中下载。 NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8); [asiHttpRequest setStringEncoding:enc]; [asiHttpRequest startSynchronous]; asiHttpRequest.delegate = self; NSString *nstrData = [asiHttpRequest responseString]; //解析数据 SBJsonParser *sbJsonParser = [[SBJsonParser alloc]init];// SBJsonParser 为SBJsonClasses 提供的类。 NSError * error = nil; nsmutCustomerMgrs = [[NSMutableArray alloc]init]; NSMutableDictionary *root = [[NSMutableDictionary alloc] initWithDictionary:[sbJsonParser objectWithString:nstrData error:&error]]; NSString *result = [root objectForKey:@"result"]; if ([result isEqualToString:@"true"]) { NSMutableArray *customerMgrList = [root objectForKey:@"dinnerSysUserList"]; //获取JSON数据对象内容 for(NSMutableDictionary *member in customerMgrList) { CustomerMgr *custommer = [CustomerMgr alloc]; //将解析的数据内容放入custommer对象中。 custommer.nsstrId =[[member objectForKey:@"id"]description]; custommer.nsstrName =[[member objectForKey:@"name"]description]; custommer.nsstrImgUrl =[[member objectForKey:@"img"]description]; custommer.nsstrPhone =[[member objectForKey:@"phoneCornet"]description]; custommer.nsstrRemark =[[member objectForKey:@"remark"]description]; [nsmutCustomerMgrs addObject:custommer]; //将custommer 对象放入数组对象nsmutCustomerMgrs中。 [custommer release]; } }