2014-01-16 126 views
-1

我有用php編寫的json輸出。Json php格式化

<?php 
// parametri del database 
$db_host = "<ip-address>"; 
$db_user = "<database user>"; 
$db_password = "<database password>"; 
$db_name = "<database name>"; 
$db = mysql_connect($db_host, $db_user, $db_password); 
if ($db == FALSE) 
die ("Errore nella connessione. Verificare i parametri..."); 
mysql_select_db($db_name, $db) 
or die ("Errore nella selezione del database. Verificare i parametri..."); 
$q=mysql_query("SELECT * FROM <nome tabella>"); 
while($e=mysql_fetch_assoc($q)) 
     $output[]=$e; 
print(json_encode($output)); 
mysql_close(); 
?> 

「問題」是格式不好,但輸出是在一行。

[{"id":"1","Nome":"Pippo","Cognome":"Paperino","mail":"[email protected]","cell":"3333333333}]

我怎樣才能像顯示輸出:

{ 
    "a": "apple", 
    "b": "banana", 
    "c": "catnip" 
} 

我tryied使用echo json_encode($response, JSON_PRETTY_PRINT);但沒有工作..我寫

print(json_encode($output, JSON_PRETTY_PRINT));但我得到一個錯誤。

+0

更新您的PHP版本。 – BuysDB

+0

首先,您需要在您的問題中發佈錯誤,第二個'JSON_PRETTY_PRINT'僅在PHP 5.4中添加,所以您需要升級 – Bojangles

+0

這是我第一次嘗試做這樣的事情,所以也許我錯了。有沒有另一種方法來使用'JSON_PRETTY_PRINT'格式化json輸出? – Davidebj

回答

0

首先檢查你的json字符串是不是有效的json。你的json字符串應該是:

[{"id":"1","Nome":"Pippo","Cognome":"Paperino","mail":"[email protected]","cell":"3333333333"}] 

你錯過了最後在你的json字符串中的雙引號。
您可以檢查JSON是有效還是無效here

爲什麼你要格式化輸出?

+0

我寫的是一個例子..數據不正確,但發明,因爲我不能寫出正確的數據輸出。無論如何,我試圖更新PHP版本,我寫道:'echo json_encode($輸出,JSON_PRETTY_PRINT);'但不起作用,它再次顯示在一行中所有.. – Davidebj

+0

我想要它,因爲是更易於理解。 – Davidebj

+0

好。因此,請參閱此鏈接:http://stackoverflow.com/questions/2614862/how-can-i-beautify-json-programmatically – user2936213