从Objective C中的json_encode(php)读取数据

时间:2013-10-14 11:52:04

标签: objective-c json

我正在使用我的网站网址中的查询字符串从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。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我遇到过同样的问题,发现我的PHP没有返回UTF8编码的JSON。这也可能是你的问题吗?