Php 如何从iPhone应用程序中获取html文件的内容(JSON对象)?
我有一个iPhone应用程序,它从php文件中获取响应。此响应生成一个html文件,其中正文包含一个json对象。如何检索此JSON对象Php 如何从iPhone应用程序中获取html文件的内容(JSON对象)?,php,iphone,mysql,json,Php,Iphone,Mysql,Json,我有一个iPhone应用程序,它从php文件中获取响应。此响应生成一个html文件,其中正文包含一个json对象。如何检索此JSON对象 $query = "SELECT username FROM userData WHERE username = '$username'"; $result = mysql_query($query); if (mysql_num_rows($result) > 0) { sendResponse(200, js
$query = "SELECT username FROM userData WHERE username = '$username'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
sendResponse(200, json_encode('SUCCESS Notification'));
} else {
$query = "INSERT INTO userData (username,password,email,signup_date) VALUES ('$username','$password','$email','$date')";
$result=mysql_query($query,$connection) or die (mysql_error()." Kann Tabelle der Datenbank nicht lesen!");
}
function sendResponse ($status = 200, $body ='', $content_type = 'application/json'){
$status_header = 'HTTP/1.1 ' . $status . ' ' . 'OK';
header($status_header);
header('Content-type:' . $content_type);
echo $body;
}
这就是我的iphone应用程序中发生的情况:
NSURLResponse *theResponse =[[NSURLResponse alloc]init];
NSError *error;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&error];
NSDictionary *jsonDictionaryResponse =[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"json response = %@", jsonDictionaryResponse);
如果它是格式正确的HTML(带有开始和结束标记),那么您可以使用任何XML解析器,如NSXMLParser或使用解析器来解析HTML 在我看来,您没有在JSON enocded字符串周围添加HTML标记。因此,您可以解析整个响应体。我建议您使用(如果您尚未使用)或 但请注意,在发送json数据时,您应该将MIME类型更改为
application/json
,而json\u编码字符串是没有意义的
sendResponse(200, json_encode(array('SUCCESS Notification')), 'application/json');
我不确定发送包含JSON的HTML文件的目的,但这不是一个好的做法。HTML是一个文档,JSON是一个数据结构,您现在将其作为文本包含在正文中。你只是在使用来自Response的JSON和“扔掉其余的”吗?因为我同意佩卡改变你的输出。我不确定您对PHP有多熟悉,但您可以将页面的输出更改为任何您想要的内容。只是不要在您请求的php文件中放入任何html,并将输出类型设置为json,如下所示:
header('Content-type:text/json');
否则,您也可以使用正则表达式或Pekka建议的DOM解析器。您不能更改响应并删除其周围的HTML吗?具体更改什么?我考虑过更改状态代码,但我不确定这是否是一个好的解决方案。。。处理状态代码可以吗?只需输出JSON。为什么您需要HTML?您是否在某处显示它?如果不是的话,用HTML包装JSON是毫无意义和适得其反的…Dave说什么-这有什么意义而不是直接输出纯JSON?好的,是的,这绝对没有意义。。。但是,我还是不能让它工作。我会把密码写进我的问题里。如果有人看一下我会很感激的…我把我的代码贴在了问题上。你能看看php部分是否正确吗?非常感谢…好吧,我不确定你的应用程序是做什么的,但是你没有用真正的JSON对象响应。如果您json\u编码一个字符串,您将得到一个字符串。您必须对对象或数组进行编码。请在内容类型:
和文本/json之间添加空格。
(内容类型:文本/json
)