IOS之JSON数据解析

一、准备工作:

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];         
}     
}

你可能感兴趣的:(ios,json)