以下是我的PHP代码,它发送对Web服务请求的响应:
$query = "select name,email,password from User where email='".$email."' AND password='".$password."'";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if($num_rows==1)
{
sendResponse(200, json_encode("match"));
}
if($num_rows==0)
{
sendResponse(204, json_encode("not match"));
}
以下是我的iOS代码:
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSString *status = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@" Returned Json data : %@",status);
if ([status isEqualToString:@"match"])
{
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate OpenTabController];
}
//Boolean flag = [status isEqualToString:@"not match"];
//NSLog(@"flag : %d",flag);
if ([status isEqualToString:@"not match"])
{
NSLog(@"not match");
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Invalid email or password"
message:@""
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
行[status isEqualToString:@"not match"]
不起作用。
答案 0 :(得分:2)
首先,您要将字符串转换为json repsonse。在PHP代码中,使用关联数组创建键值对,然后使用JSON解析器将数据转换为iOS中的JSON格式。在转换后的字典上使用objectForKey方法
PHP代码
if($num_rows==1)
{
$status = "match";
$status_array = array("status"=>"$status");
sendResponse(200, json_encode($status_array));
}
if($num_rows==0)
{
$status = "not match";
$status_array = array("status"=>"$status");
sendResponse(204, json_encode($status_array));
}
iOS代码 使用以下过程解析json并相应地获取所需的值。 http://www.raywenderlich.com/5492/working-with-json-in-ios-5
答案 1 :(得分:1)
伙计们我找到了解决方案:
php代码:
if($num_rows==1)
{
$status = array(
"status" => "match",
);
sendResponse(200, json_encode($status));
}
if($num_rows==0)
{
$status = array(
"status" => "not match",
);
sendResponse(204, json_encode($status));
}
iOS代码:
NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error: nil];
NSString *status = [result objectForKey:@"status"];
NSLog(@"Returned Json data : %@",status);
答案 2 :(得分:0)
您可以尝试调试并检查status
中的值是什么。我认为代码中的字符串比较没有任何问题。
答案 3 :(得分:0)
首先,您需要将SBJson库包含在项目中。 然后导入json.h
#import "JSON.h"
找到以下代码:
NSString *status = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSDictionary *dic = [status JSONValue];
这个字典是你的结果。用这个字典,你可以检查你的密钥的值。
答案 4 :(得分:0)
PHP json_encode转义空间字符。 它应该来自“不匹配”。一个json,比如{' not match'}