我在这里看到了多个答案,但是没有一个答案能解决我的问题,因此我开设了一个帐户问这个问题。我现在了解,\n
在json中是不允许使用的字符,因为不允许使用反斜杠,这就是问题发生的原因。
我有以下代码在json中编码数组:
<?php
$data = array('test1' => 'something1', 'test2' => 'something2', 'test3' => 'something3');
echo json_encode($data);
我正在尝试将字符串输出如下:
{
“ test1”:“ something1”,
“ test2”:“ something2”,
“ test3”:“ something3”
}
但是我得到的是:
{“ test1”:“ something1”,“ test2”:“ something2”,“ test3”:“ something3”}
这是我的努力:
<?php
$data = array('test1' => 'something1\n', 'test2' => 'something2\n', 'test3' => 'something3\n');
echo json_encode($data);
但这返回
{“ test1”:“ something1 \ n”,“ test2”:“ something2 \ n”,“ test3”:“ something3 \ n”}
答案 0 :(得分:0)
您可以向json_encode
添加第二个参数。这称为JSON_PRETTY_PRINT
常量:
<?php
$data = array('test1' => 'something1', 'test2' => 'something2', 'test3' => 'something3');
echo json_encode($data, JSON_PRETTY_PRINT);
答案 1 :(得分:0)
您可以将JSON_PRETTY_PRINT
与标头一起使用
$data = array('test1' => 'something1', 'test2' => 'something2', 'test3' => 'something3');
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data,JSON_PRETTY_PRINT);
OR
$json= json_encode($data,JSON_PRETTY_PRINT);
printf("<pre>%s</pre>", $json);
答案 2 :(得分:0)
JSON是一种交换格式,因此您不必太在意外观。
无论如何,您可以使用flag constants来更改编码过程
<?php
$a = '{"test1":"something1","test2":"something2","test3":"something3"}';
print_r(json_encode(json_decode($a, true), JSON_PRETTY_PRINT));
查看实时示例:https://3v4l.org/CEc3L