【发布时间】:2013-08-27 00:38:45
【问题描述】:
我正在使用这个简单的代码将数组打印为 JSON 结构。
header('Content-Type: application/json');
echo json_encode($this->data, JSON_PRETTY_PRINT);
我使用的是 Chrome 版本 28.0.1500.95 m。出于某种奇怪的原因,输出被包装在一个带有制表符(即\t)开头的前置标记中。
JSON 似乎可以解析,但是当没有发送数据时,我仍然会得到那个制表符。我该如何解决这个问题?
<pre style="word-wrap: break-word; white-space: pre-wrap;"> {
"title": "Node",
"items": [
{
"label": "Do stuff",
"icon": "..\/ui\/images\/icons\/16x16\/icon.png",
"action": "dostuff"
}
]
}</pre>
编辑:这是 jQuery 端的代码:
$.ajax({
url : "/myproject/getmenu/",
type : 'GET',
dataType: "json",
success : function(data) {
//alert(JSON.stringify(data,undefined,2));
if (jQuery.isEmptyObject(data)) {
return;
}
title = data.title;
items = data.items;
selected.contextPopup({
title : title,
items : items
});
}
});
【问题讨论】:
-
你什么时候使用
jQuery.isEmptyObject? -
你也需要展示你的JS代码。
-
我已经添加了 jQuery 端。
-
@ExplosionPills 我想用它来测试是否没有数据发回。不确定它是否是适当的形式。
-
$this->data来自哪里?它是否来自文件、数据库等?它是与<pre>标记和选项卡一起存储的,还是在加载到该变量时添加了<pre>标记?
标签: php jquery json google-chrome pretty-print