【问题标题】:Format echo json_encode [duplicate]格式回显 json_encode [重复]
【发布时间】:2013-02-10 14:19:45
【问题描述】:

我想格式化回显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 文档

【问题讨论】:

  • 你为什么要打扰 JSON 的样子?它的结构很重要,而不是它的格式...
  • 可能添加 json 标头会有所帮助。

标签: php json


【解决方案1】:

你可以在 php 5.4+ 中使用json_encode($data, JSON_PRETTY_PRINT)

在 php 5.3 及以下版本中,您可以尝试使用正则表达式对其进行格式化,但这不太安全(或者您可以使用库来编码 json)。

【讨论】:

    【解决方案2】:

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

    如果您要忽略这一点,请参阅json_encode function 的手册,其中提供了 选项 列表,其中包括 JSON_PRETTY_PRINT,描述为 Use whitespace in return数据来格式化它。自 PHP 5.4.0 起可用。

    因此步骤是:

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

    【讨论】:

    • Pretty Print 本身并不能正确输出,但是添加了 header('Content-type: application/json'); before 工作,但输出 HTML 文档
    • 我不同意您的第一个陈述,JSON 是一种数据格式这一事实并不是让人难以阅读的理由,只要标准允许这种格式,情况就是如此JSON。
    猜你喜欢
    • 2016-03-03
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2013-01-06
    • 1970-01-01
    • 2016-08-25
    相关资源
    最近更新 更多