如何从PHP文件中输出格式正确的JSON?

时间:2012-11-29 07:06:38

标签: json

我有这段代码:

<?php

    header('Content-Type: text/javascript; charset=UTF-8');
    header('Cache-Control: private, no-cache, no-store, must-revalidate');
    header('Pragma: no-cache');
    header('Expires: Sat, 01 Jan 2000 00:00:00 GMT');

    $data = array(
        "data" => array(
            "sender" => "Jhon Andrew",
            "recipient" => "Someone OverThe Internet",
            "conversation" =>
            array(
                "unix" => "1234567890",
                "message" => "Lorem ipsum dolor sit amet."
            ),
            array(
                "unix" => "0987654321",
                "message" => "Tema tis rolod muspi merol."
            )
        )
    );

    echo json_encode($data);

?>

我期待这样的结果:

{
    "data": {
        "sender":"Jhon Andrew",
        "recipient":"Someone OverThe Internet",
        "message":"Lorem ipsum dolor sit amet."
    }
}

但我把它显示在一行中,就像这样:

{"data":{"sender":"Jhon Andrew","recipient":"Someone OverThe Internet","message":"Lorem ipsum dolor sit amet."}}

如何才能像我期望的那样获得格式正确的JSON输出?实际上它并不重要,但我只是希望以良好的格式看到结果。


  

...顺便说一下,我刚从facebooks图片链接中复制了标题   因为这就是我想输出结果的方式。例:   graph.facebook.com/mOngsAng.gA


  

当然有效。我想知道的是如何输出它   这个:graph.facebook.com/mOngsAng.gA - 你可以看到它是正确的   格式化。我的意思是它有换行符和缩进。与我不同   获得只是在一行显示。

1 个答案:

答案 0 :(得分:4)

在php手册中查看json_encode()JSON_PRETTY_PRINT标志。 你可以简单地使用:

$data = json_encode($data, JSON_PRETTY_PRINT);

如果您未使用PHP 5.4或更高版本,请尝试使用已接受的问题答案:Pretty-Printing JSON with PHP

但是,你的有效 json输出!