Tos*_*shi 10 php mysql sql json
我动态地收到一个JSON字符串,如下所示:
{"post":[{"id":"11","body":"","image":"images/rose.png","stamp":"2013-11-04 14:50:11" }]}
我正在尝试按如下方式打印此JSON字符串:
{
"post": [
{
"id": "11",
"body": "",
"image": "images/rose.png",
"stamp": "2013-11-04 14:50:11"
}
]
}
Run Code Online (Sandbox Code Playgroud)
所以,我尝试了以下代码(仅用于演示目的):
<?php
$str = '{ "post": [ { "id": "11", "body": "", "image": "images\/rose.png", "stamp": "2013-11-04 14:50:11" } ] }';
$obj = json_decode($str);
echo json_encode($obj, JSON_PRETTY_PRINT);
Run Code Online (Sandbox Code Playgroud)
它只输出未格式化的JSON字符串:
{"post":[{"id":"11","body":"","image":"images/rose.png","stamp":"2013-11-04 14:50:11" }]}
但是,当我在json_encode()语句上方添加以下行时,它会按预期工作.
header('Content-Type: text/plain');
Run Code Online (Sandbox Code Playgroud)
可能导致此问题的原因是什么?为什么不工作时Content-Type是text/html?
Tom*_*ess 20
JSON_PRETTY_PRINT使用空格来格式化JSON.当它显示为HTML时,将忽略空格.如果要保留格式,请将JSON包装在<pre>标记中.
例如:
<?php
$str = '{ "post": [ { "id": "11", "body": "", "image": "images\/rose.png", "stamp": "2013-11-04 14:50:11" } ] }';
$obj = json_decode($str);
$json = json_encode($obj, JSON_PRETTY_PRINT);
printf("<pre>%s</pre>", $json);
Run Code Online (Sandbox Code Playgroud)
如果您不想使用<pre>标记,那么您还可以在white-space: pre包含JSON的任何元素上使用CSS属性.
小智 6
您使用以下标头:
header('Content-Type: application/json; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7504 次 |
| 最近记录: |