我正在使用我的网站网址中的查询字符串从MySQL数据库中读取数据。
Example: www.test.com/user.php?username=mike
我从数据库中读取属于用户名的数据(在本例中为:mike)。
这是我的PHP文件:
$result=mysql_query("SELECT LOWER(username) AS username FROM user WHERE username = '$username'");
$rows = array();
while($row = mysql_fetch_assoc($result)){
$rows[] = $row;
}
echo json_encode($rows);
此PHP文件返回:
[{"username":"mike"}]
已读取的数据正确显示JSON文件的格式。
在此之后,我想读取Objective C(xcode)中的JSON值。
我尝试在Objective C中从JSOn中读取该值,如下所示:
- (void) loadJsonData
{
NSString *stringLink = [NSString stringWithFormat:@"http://www.test.com/user.php?username=%@", self.txtUsername.text];
NSURL *url = [NSURL URLWithString: stringLink];
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"application/x-javascript"]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
[self parseJSONData:JSON];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"Error :%@",response);
}];
[operation start];
}
-(void) parseJSONData:(id) JSON
{
[self.loginArray removeAllObjects];
if(JSON != NULL)
{
for (NSDictionary* dict in JSON) {
User *user = [[User alloc] init];
user.username = [dict objectForKey:@"username"];
[self.loginArray addObject:user];
}
}
}
但是这段代码不会读取JSON中的值。
但是当我创建一个.JSON文件(我称之为“test.json”)并将这些数据保存到该文件中时:[{"username":"mike"}]
我将Objective C代码中的URL更改为{{1}然后我的Objective C代码读取值....
因此,当我创建一个.JSON文件时,我的Objective C代码会读取数据。 但是当我想直接从PHP文件中读取时,我的Objective C代码不会读取数据。
有人可以帮助我,或解释一下为什么这段代码不能从PHP文件中读取?我在PHP文件中也编码JSON。
提前致谢。
答案 0 :(得分:0)
我遇到过同样的问题,发现我的PHP没有返回UTF8编码的JSON。这也可能是你的问题吗?