2013-04-08 147 views
0

我目前使用下面的腳本打印JSON文件保存爲JSON文件用PHP打印JSON,然後

<?PHP 

include ('connect.php'); 



$get_student = mysql_query("SELECT * FROM student ORDER BY name asc"); 
$anArray = json_decode ($data); 

while ($row = mysql_fetch_assoc($get_student)) { 

$anArray[] = $row; 

} 
header("Content-type: application/json"); 
echo json_encode ($anArray, JSON_PRETTY_PRINT) 
?> 

我然後使用AFNETWORKING獲取在Xcode JSON文件並將其保存到文檔目錄

url = [NSURL URLWithString:@"url/Json3.php"]; 

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 

AFHTTPRequestOperation *downloadOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"database"]; 

downloadOperation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO]; 

[downloadOperation start]; 

我再嘗試讀取下載的文檔具有下列

NSURL *JsonUrl = [NSURL fileURLWithPath:path]; 
NSURLRequest *JSONrequest = [[NSURLRequest alloc] initWithURL:JsonUrl]; 

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:JSONrequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 


    anArray = JSON; 
    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { 
    NSLog(@"Request Failed with Error: %@, %@", error, error.userInfo); 
}]; 
[operation start]; 
一個JSON文件10

然而AFNetworking給我在日誌以下錯誤線

請求失敗,錯誤:錯誤域= AFNetworkingErrorDomain代碼= -1016「預期內容類型{( 「文本/ JSON」, 「應用/ JSON」, 「文本/ JavaScript的」 )},得到純文本/」的UserInfo = 0xa49f990 {NSLocalizedRecoverySuggestion = [

,然後示出了日誌

QUESTION

0在文本文檔內容

如何進行PHP JSON打印,打印Application/Json文檔而不是文本文檔?

感謝

+2

我猜在發送'header('Content-Type:application/json');'在PHP中發生錯誤。 – hek2mgl 2013-04-08 13:30:17

+1

檢查_「頭已發送」_警告。 – Halcyon 2013-04-08 13:32:41

+0

@FritsvanCampen我已經檢查過頭文件,並且可以確認它們尚未發送 – Tom 2013-04-10 08:29:55

回答

0

假設它已經發送問題頭,在你的「connect.php」,在最高層,把

ob_start(); 

這將啓動outbut緩衝這基本上意味着,PHP犯規發送任何東西到瀏覽器,直到所有東西都呈現(或直到緩衝區被髮送,停止等)。

如果其他東西只是想將數據保存到json文件中,可以使用

file_put_contents('myfile.json', json_encode($anArray, JSON_PRETTY_PRINT)); 

此外,它可能是您傳遞給json_encode函數的標誌有問題。只是一個想法。

+0

感謝您的回覆@Ozzy,我已經嘗試了上述內容,但沒有成功。事實上,file_put_contents以正確的格式打印JSON文件,但將其作爲單獨的身份保存在服務器上。什麼即時通訊嘗試實現的是讓php腳本打印第一個實例中的正確文檔 – Tom 2013-04-10 08:28:05

0

檢查connect.php的內容,沒有空間是php結束標籤之後,或者只是刪除?>

+0

感謝您的答覆大衛,但在檢查連接文檔後,我可以確認沒有空格在PHP文檔的末尾 – Tom 2013-04-10 08:29:18

0

好吧,我沒有解決打印問題,而是一個簡單的代碼行使工作

[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/plain"]]; 

希望這可以幫助有類似問題的人