格式回显 json_encode [重复]
Posted
技术标签:
【中文标题】格式回显 json_encode [重复]【英文标题】:Format echo json_encode [duplicate] 【发布时间】: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 标头会有所帮助。 【参考方案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 起可用。
因此步骤是:
-
确保您使用的是 PHP 5.4.0 或更新版本
json_encode($data, JSON_PRETTY_PRINT);
【讨论】:
Pretty Print 本身并不能正确输出,但是添加了 header('Content-type: application/json'); before 工作,但输出 HTML 文档 我不同意您的第一个陈述,JSON 是一种数据格式这一事实并不是让人难以阅读的理由,只要标准允许这种格式,情况就是如此JSON。以上是关于格式回显 json_encode [重复]的主要内容,如果未能解决你的问题,请参考以下文章
PHP json_encode将行作为对象而不是数组返回[重复]