2014-02-26 34 views
0

有人可以幫助我的JSON文件無法顯示的原因嗎?我是JSON的初學者。這是我的代碼,它只顯示空白文檔。我正在從本網站http://contohprogramandroid.blogspot.com/2013/10/contoh-program-android-aplikasi-wisata.html學習本教程。非常感謝。PHP錯誤獲取json文件

這是我運行代碼時的圖片。 enter image description here

//this is the code webservice.php 

<?php 
class Database { 
private $host = "localhost"; 
private $user = "root"; 
private $pass = ""; 
private $db = "wisata_jogja"; 
private $conn; 

// constructor 
function __construct() { 
    try{ 
     $this->conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db, $this->user, $this->pass); 
    }catch(PDOException $e) { 
     echo "error pdo $e"; 
    } 
} 


public function showAllData($table) { 
    $sql ="SELECT * FROM $table"; 
    $q = $this->conn->query($sql) or die("Failed !!"); 
    while ($r = $q->fetch(PDO::FETCH_ASSOC)) { 
     $data[] = $r; 
    } 
    return $data; 
} 

} 

$database = new Database(); 
$response = array(); 

if (isset($_GET['get']) && $_GET['get']=='lokasi') { 
$response['location'] = array(); 

foreach ($database->showAllData('lokasi') as $value) { 
    $kode = array(); 
    extract($value); 

    $kode['id'] = $id; 
    $kode['nama'] = $nama; 
    $kode['alamat'] = $alamat; 
    $kode['gambar'] = $gambar; 
    $kode['lat'] = $lat; 
    $kode['lng'] = $lng; 
    array_push($response['location'], $kode); 
} 
echo json_encode($response); 
} 
?> 
+1

右擊並選擇'顯示source',你可能會看到你的輸出。 Chrome不支持在沒有插件的情況下顯示格式化的JSON數據。 chrome中的 –

+1

使用F12打開開發者控制檯,在響應正文中,您可以正確檢出JSON,而不需要插件。 – NDM

+0

你也可以在CLI(命令行界面)模式下運行你的PHP代碼,這是我懷疑的時候更喜歡的解決方案......'$ php script.php' ... – MarcoS

回答

0

你的狀態輸出是這樣的:

if (isset($_GET['get']) && $_GET['get']=='lokasi') { 

因此,腳本不會輸出,因爲條件的任何JSON不滿足。

從您的屏幕截圖中可以清楚地看到您缺少GET參數。

在瀏覽器的參數添加到URL:

http://localhost/wisata/webservice.php?get=lokasi 

它總是好的,當條件不成立採取替代措施。

你應該總是echo東西只是讓你知道是怎麼回事:

if (isset($_GET['get']) && $_GET['get']=='lokasi') { 
    //.............. 
    echo json_encode($response); 
}else{ 
    echo "cannot output JSON data: parameter is missing!!; 
} 
0

你確定你通過GET變量 「lokasi」 你的腳本?

否則,就不會去通過,如果條件

如果(isset($ _ GET [ '得到'])& & $ _GET [ '得到'] == 'lokasi')

您可以通過嘗試轉儲變量或if條件內的任何foobar的數據來驗證你的代碼去那麼遠,比如檢查:

if(isset($_GET['get']) && $_GET['get']=='lokasi') { 
    $response['location'] = array(); 

    $myTest = array('test'); 
    var_dump($myTest); // Should display something on screen 

    // The rest of your code here