PHP返回的json,Obj-C无法解析
<?php
$arr = array(
'name' =>'abc',
'nick' => 'bbc'
);
$json_string = json_encode($arr);
echo $json_string;
?>只是简单的返回一串json,OC代码如下:
NSString *name = _username.text;
NSString *pass = _password.text;
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1:8888/login.php"];
NSLog(@"%@",url);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
[request setHTTPMethod:@"POST"];
NSString *str = [NSString stringWithFormat:@"name=%@&pass=%@",name,pass];
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSError *error;
NSDictionary *result = [NSJSerialization JSONObjectWithData:received options:NSJSONReadingAllowFragments error:&error];
NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
NSLog(@"%@",str1);
NSLog(@"%@",error);
打印出的日志是这样:
2014-03-04 10:17:17.179 word[50534:70b] http://127.0.0.1:8888/login.php
2014-03-04 10:17:17.469 word[50534:70b] string{"name":"abc","nick":"bbc"}
2014-03-04 10:17:17.470 word[50534:70b] Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid value around character 0.) UserInfo=xxxxxxxx {NSDebugDescription=Invalid value around character 0.}
有人遇到过吗?折腾了好几个小时,完全没有进展。
你的php返回内容应该是{"name":"abc","nick":"bbc"}, 而不是string{"name":"abc","nick":"bbc"}
由于多了一个string, 因此json解析失败了