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.json
Objective C コードは値を読み取ります... .
したがって、.JSON ファイルを作成すると、Objective C コードがデータを読み取ります。しかし、PHP ファイルから直接読み取りたい場合、Objective C コードはデータを読み取りません。
誰かが私を助けたり、このコードが PHP ファイルから読み取れない理由を説明してくれませんか? PHPファイルにもJSONをエンコードしています。
前もって感謝します。