0

Web サイトの 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.jsonObjective C コードは値を読み取ります... .

したがって、.JSON ファイルを作成すると、Objective C コードがデータを読み取ります。しかし、PHP ファイルから直接読み取りたい場合、Objective C コードはデータを読み取りません。

誰かが私を助けたり、このコードが PHP ファイルから読み取れない理由を説明してくれませんか? PHPファイルにもJSONをエンコードしています。

前もって感謝します。

4

1 に答える 1

0

私は一度同じ問題を抱えており、PHP が UTF8 でエンコードされた JSON を返していないことがわかりました。これもあなたの問題でしょうか?

于 2013-10-14T11:55:38.630 に答える