格式化echo json_encode

时间:2013-02-25 12:27:29

标签: php json

我想格式化echo json_encode,输出目前是

{"results":{"course":"CC140","books":{"book":[[{"id":"300862","title":"Building object-oriented software","isbn":"0070431965","borrowedcount":"6"}]]}}}

我希望输出如下:

{
    "results": {
        "course": "CC140",
        "books": {
            "book": [
                [
                    {
                        "id": "300862",
                        "title": "Building object-oriented software",
                        "isbn": "0070431965",
                        "borrowedcount": "6"
                    }
                ]
            ]
        }
    }
}

这是制作JSON的代码

$temp = array();
    foreach ($my_array as $counter => $bc) {
        $temp['id'] = "$id[$counter]";
        $temp['title'] = "$title[$counter]";
        $temp['isbn'] = "$isbn[$counter]";
        $temp['borrowedcount'] = "$borrowedcount[$counter]";
        $t2[] = $temp;
    }

        $data = array(
  "results" => array(
    "course" => "$cc",
    "books" => array(
      "book" =>
      array(  
        $t2
      )
    )
  )
);
    echo json_encode($data);

任何帮助或指示将不胜感激,谢谢

添加此

header('Content-type: application/json');
echo json_encode($data, JSON_PRETTY_PRINT);

格式化JSON,但标题也超出了整个HTML文档

2 个答案:

答案 0 :(得分:17)

我给出的第一条建议是:不要。 JSON是一种数据格式。使用工具处理它,而不是尝试让服务器格式化它。

如果您要忽略这一点,请参阅json_encode function手册,其中列出选项,其中包含JSON_PRETTY_PRINT,其中描述为在返回的数据中使用空格来格式化它。从PHP 5.4.0开始提供。

因此步骤如下:

  1. 确保使用的是PHP 5.4.0或更高版本
  2. json_encode($data, JSON_PRETTY_PRINT);

答案 1 :(得分:3)

您可以在php 5.4 +

中使用json_encode($data, JSON_PRETTY_PRINT)

在php 5.3&在那之下,你可以尝试用正则表达式格式化它,但它不太安全(或者你可以使用库来编码json)。