0

我正在使用我的网站 url 中的查询字符串从 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 更改为www.test.com/test.json,然后我的 Objective C 代码读取该值...... .

因此,当我创建一个 .JSON 文件时,我的 Objective C 代码会读取数据。但是当我想直接从 PHP 文件中读取数据时,我的 Objective C 代码不会读取数据。

有人可以帮助我,或者解释一下为什么这段代码不能从 PHP 文件中读取吗?我也在 PHP 文件中对 JSON 进行编码。

提前致谢。

4

1 回答 1

0

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

于 2013-10-14T11:55:38.630 回答