【问题标题】:Json encode PRETTY PRINT printing out with slashes in phpJson 编码 PRETTY PRINT 在 php 中用斜线打印出来
【发布时间】:2020-02-09 20:08:58
【问题描述】:

我遵循了所有关于打印格式良好的 JSON 响应的教程,但我无法让它工作。如果我不做 json_encode PRETTY PRINT,它会在一行中打印为原始 JSON 结果,

但是当我添加所有这些时,它仍然将其打印为单行,但在每个引号之前都有斜杠。

这是我正在使用的代码

echo"<pre>";
$response = wp_remote_get( 'URL TO JSON DATA' ));
$jsonData = json_encode($response['body'], JSON_PRETTY_PRINT);

header('Content-Type: application/json');
echo $jsonData;
echo"</pre>";

这是打印出来的数据样本

"{\"head\": {\"error\": \"\", \"version\": \"

如有必要,我可以提供真实数据,我只是想在每个引用之前用斜线说明我的意思,我希望这足以说明我的问题

谢谢!

【问题讨论】:

  • 这些是可以被php解析的。
  • 那么如何在 pre 标记内打印出漂亮的 json 响应,以便于阅读而不是一大块代码?
  • 代码本质上并不意味着漂亮。它应该是功能性的。您可以在线使用 JSON 格式化程序,使其更易于阅读。

标签: php json


【解决方案1】:

你从wp_remote_get得到的数据已经是完美编码的JSON字符串,无需再次编码。

当您再次编码时,PHP 会生成一个包含一个元素的结构,即您最初获得的字符串,并转义所有引号以形成有效的 JSON。

所以你可以直接输出数据:

$response = wp_remote_get( 'URL TO JSON DATA' ));
header('Content-Type: application/json');
echo $response;

【讨论】:

  • 谢谢,当回显为 $response['body']; 时删除了斜线;但仍打印为
    内的单行
  • 如果像你建议的那样直接作为 $response 回显,只是打印出单词数组
  • 好的,如果你真的想要漂亮的打印,先解码,然后用漂亮的打印选项重新编码:json_encode(json_decode($response['body'], true), JSON_PRETTY_PRINT);
猜你喜欢
  • 1970-01-01
  • 2016-05-16
  • 2016-03-05
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
  • 2017-10-01
相关资源
最近更新 更多