使用RestKit进行JSON的解析

       首先保证自己的项目中已经添加了RestKit源码并且可以编译成功,具体步骤见上篇文章。

       当我们需要从服务器请求一个JSON内容时,我们需要对JSON格式的内容进行解析并获取其中的字段信息。JSON返回的数据格式可以映射到本地的一个类中,用户建立好这样的映射关系后,便可以直接从自己在本地映射的类实例中访问JSON字段信息了。下面说一下如何建立映射,从服务器请求JSON信息并访问。

步骤一:指定基准URL

       在xcode项目的didFinishLaunchingWithOptions函数中添加如下代码:

[RKObjectManager objectManagerWithBaseURL:@"http://10.108.14.125:8080"];

       其中@"http://10.108.14.125:8080"是以后要访问服务器的地址。

步骤二:建立本地映射类

@interface Adver : NSObject {

NSString *ad1;

NSString *ad2;

NSString *ad3;

}

@property (nonatomic, retain)NSString *ad1;

@property (nonatomic, retain)NSString *ad2;

@property (nonatomic, retain)NSString *ad3;

@end



@implementation Adver

@synthesize ad1;

@synthesize ad2;

@synthesize ad3;

@end

步骤三:建立映射

       在需要进行请求的视图中,添加viewDidAppear函数,在其中添加如下:

   RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[Adver class]];

[mapping mapKeyPathsToAttributes:

@"id", @"ad1",

@"name", @"ad2",

@"picURL", @"ad3",

nil];

       这样便将服务器的JSON对应的id、name、picURL字段映射到了本地自己创建类的ad1、ad2、ad3字段上。

步骤四:开始请求

  在步骤三的代码下面添加如下请求代码:

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/i2shoppingmobile/home/ad1" objectMapping:mapping delegate:self];

  其中请求指定的资源相对路径是相对于基准地址的。

步骤五:回调并显示请求内容

       首先保证当前视图控制器实现了RKObjectLoaderDelegate协议。添加回调函数:

-(void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects

{

Adver *adver = [objects objectAtIndex:0];

NSLog(@"%@",[adver ad1]);

NSLog(@"%@",[adver ad2]);

NSLog(@"%@",[adver ad3]);

}

  运行程序我们便可以访问JSON的信息了。

posted @ 2011-10-31 10:21  Erebus_NET  阅读(814)  评论(0编辑  收藏  举报