像Facebook一样打印JSON格式

时间:2011-07-23 14:51:01

标签: php json

此处示例:https://graph.facebook.com/19292868552

怎么可能?页面的来源就像页面出现一样!没有任何代码。如果您尝试更改网址中的最后2个数字,则可以获得其他示例。 他们如何在数组的每个元素之后使用回车符打印此JSON而没有任何类型<br/>
在php.net中,我找不到任何方法可以很好地打印这样的JSON。

 $vettore = array(
    "uno" => 1,
    "due" => 2,
    "tre" => 3
 );

 header("Content-Type: text/javascript; charset=UTF-8");
 echo json_encode($vettore, JSON_PRETTY_PRINT);

3 个答案:

答案 0 :(得分:3)

如果您查看回复标题,就会出现以下行:

Content-Type: text/javascript; charset=UTF-8

通过这种方式,浏览器知道该页面不是HTML,并且不会尝试将其格式化。

答案 1 :(得分:1)

告诉浏览器它是纯文本,然后只是打印它。

header('Content-type: text/plain');

虽然他们实际使用text/javascript,但页面属性显示。

答案 2 :(得分:1)

你可以这样做,它似乎不是实现整齐格式Json的最佳方式,但它确实有效。

$json_stuff = array(
   "url"         => "http://example.com",
   "name"        => "my name",
   "description" => "some description",
   "other"       => "some text"
);

foreach ($json_stuff as $key => $val) {
   $json_string .= "\"${key}\" : \"${val}\",\n";
}

header('Content-Type: application/json');
die("{\n".rtrim($json_string, ",\n")."\n}");

上面会输出换行符,并且在网址中没有反斜杠。

{
"url" : "http://example.com",
"name" : "my name",
"description" : "some description",
"other" : "some text"
}