【问题标题】:How to remove escaping special characters from json_encode output如何从 json_encode 输出中删除转义的特殊字符
【发布时间】:2017-08-01 12:06:43
【问题描述】:

我的数据库中有一些 URL,我想使用 PHP 将它们打印为 JSON。如何在我的 JSON 对象中获得所需的格式,而无需转义反斜杠?

// Business to get data
...
// print JSON data
echo json_encode($customer, JSON_UNESCAPED_UNICODE);

【问题讨论】:

  • 我认为添加了额外的空格 n 你想删除它吗?
  • 变量 $customer 中有什么?
  • 这听起来像是一个典型的 xy 问题。为什么要打印未转义的 json? Javascript 有一个消费 JSON 的命令,叫做 JSON.parse,它允许你使用 json 并将其转换为 javascript 对象。
  • 嗨 @FélixGagnon-Grenier 我将使用 java 使用 Android 项目中的 json 输出,我不会使用 javascript 作为客户端

标签: php json


【解决方案1】:

这听起来像是典型的XY problem。在极少数情况下,您想要取消转义 JSON(我说这是礼貌,我想不出一个),在您的情况下,您的代码建议您回显该 JSON,以便它可以在其他地方使用。

Elsewhere 可能意味着在带有 JavaScript 的客户端上。 JSON.parse 函数可以完全满足您的需求,还有更多功能:它将 JSON(正确的 JSON,仍然有转义的反斜杠)转换为本机 JavaScript 对象。

echo json_encode(["url" => "http://stackoverflow.com"]);
// {"url":"http:\/\/stackoverflow.com"}

// out of scope, but response is the response from your ajax call
var parsedJson = JSON.parse(response);
console.log(parsedJson.url);
// http://stackoverflow.com

这就是您实际从 JSON 中获取未转义字符串的方式。

【讨论】:

    猜你喜欢
    • 2018-07-16
    • 1970-01-01
    • 2011-02-21
    • 2016-02-27
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多