我是第一次在我的应用程序中实现 json。
在我的应用程序中,我必须将参数从我的应用程序传递到 web 服务,据此我可以从 web 服务获得响应,但我无法找到任何可以在ios5中从我的应用程序传递参数的教程
那么网上有没有任何教程可以从中获得对我有用的教程。
我试图用谷歌找到,但我没有成功。
按照以下步骤将 json 集成到我们的项目中。
1)将以下文件复制粘贴到您的项目中。
2) 创建新的组名作为包含以下文件的帮助。
3) 将新文件创建到 Support Files 中,名称为 constant.h
#define WEB_SERVICE_URL @"Your server url" //@"http://demo.google.com/webservice/"
#define USERNAME @"Your user id"//static username to send everytime
#define PASSWORD @"Your Password"//static password to send everytime
4)更改上面的变量链接,您的网络服务存在于哪里,这意味着您的网络服务的网址“WEB_SERVICE_URL”</p>
5) 打开“Rest.h”文件并创建一个方法。
-(void)Get_StoreDetails:(SEL)seletor andHandler:(NSObject*)handler andCountryId:(NSString *)CountryCode;
6) 打开“Rest.m”文件以及将哪个参数传递给服务器该方法的代码。
-(void)Get_StoreDetails:(SEL)seletor andHandler:(NSObject *)handler andCountryId:(NSString *)country_id{
NSDictionary *req = [NSDictionary dictionaryWithObjectsAndKeys:@"content/get_stores",@"request",
[NSDictionary dictionaryWithObjectsAndKeys:USERNAME,@"username",
PASSWORD,@"password",
country_id,@"country_id",
nil],@"para",nil];
[[[JSONParser alloc] initWithRequest:req sel:seletor andHandler:handler] autorelease];
}
7) 现在 Rest 应用程序已准备好发送请求,然后这个方法调用到我们的视图控制器。
以下代码放入 .h 文件中的“viewWillAppear”方法中
#import <UIKit/UIKit.h>
@interface JsonDemoAppViewController : UIViewController{
UIAlertView *alertCtr;
}
@property(nonatomic,retain)NSMutableArray *arrForStores;
- (void)getData:(id)object;
@end
以下代码放入 .m 文件中的“viewWillAppear”方法并导入“Rest.h”。
- (void)viewWillAppear:(BOOL)animated {
self.arrForStores=nil;
//============================Json Initialization===================================================
REST *rest = [[REST alloc] init];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[rest Get_StoreDetails:@selector(getData:) andHandler:self andCountryId:@"12"];
alertCtr = [[[UIAlertView alloc] initWithTitle:@"\nPlease Wait..." message:nil delegate:self cancelButtonTitle:nil otherButtonTitles: nil] autorelease];
[alertCtr show];
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
// Adjust the indicator so it is up a few pixels from the bottom of the alert
indicator.center = CGPointMake(alertCtr.bounds.size.width / 2, alertCtr.bounds.size.height - 50);
[indicator startAnimating];
[alertCtr addSubview:indicator];
[indicator release];
//===================================================================================================
}
然后回复进入服务器,时间对象存储到我们创建调用的方法的时间变量中。
- (void)getData:(id)object{
NSLog(@"%@",object);
if ([object isKindOfClass:[NSDictionary class]]) {
NSLog(@"Controll comes here..");
//IF your response type is NSDictionary then this code to run
}
if ([object isKindOfClass:[NSArray class]])
{
self.arrForStores=[NSArray arrayWithArray:(NSArray*)object];
//IF your response type is NSArray then this code to run
}
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
[alertCtr dismissWithClickedButtonIndex:0 animated:YES];
}