2014-01-16 196 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