【问题标题】:Json php formattingJson php格式化
【发布时间】:2014-02-05 07:48:02
【问题描述】:

我有用 php 编写的 json 输出。

<?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":"pippo.paperino@disney.com","cell":"3333333333}]

如何显示如下输出:

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

?

我尝试使用 echo json_encode($response, JSON_PRETTY_PRINT); 但不起作用.. 我写道

print(json_encode($output, JSON_PRETTY_PRINT)); 但我收到错误消息。

【问题讨论】:

  • 更新您的 PHP 版本。
  • 首先,您需要在问题中发布错误,其次 JSON_PRETTY_PRINT 仅在 PHP 5.4 中添加,因此您需要升级
  • 这是我第一次尝试做这样的事情,所以也许我错了。是否有另一种方法来格式化 json 输出而不是使用 JSON_PRETTY_PRINT
  • 更新了 php 版本,但我显示相同.. 在一行中.. 我写道:echo json_encode($output, JSON_PRETTY_PRINT);

标签: php json pretty-print


【解决方案1】:

首先检查您的 json 字符串,它不是有效的 json。你的 json 字符串应该是:

[{"id":"1","Nome":"Pippo","Cognome":"Paperino","mail":"pippo.paperino@disney.com","cell":"3333333333"}]

您错过了 json 字符串末尾的双引号。
你可以检查json是否有效here

为什么要格式化输出?

【讨论】:

  • 我写的只是一个例子。数据不正确,而是发明的,因为我无法编写正确的数据输出。无论如何,我尝试更新 php 版本,我写道:echo json_encode($output, JSON_PRETTY_PRINT); 但不起作用,它再次显示在一行中..
  • 好的。所以请看这个链接:stackoverflow.com/questions/2614862/…
猜你喜欢
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多