【发布时间】:2015-03-14 09:16:06
【问题描述】:
我在 codeigniter REST 应用程序中有以下代码(使用:https://github.com/chriskacerguis/codeigniter-restserver 构建)
public function fullname_get()
{
$fullname = array("fname"=>"john", "lname"=>"doe");
$data["json"] = json_encode($fullname);
$this->response($data["json"], 200);
}
当我调用 API 时,返回的 json 如下所示:
{\"fname\":\"john\",\"lname\":\"doe\"}
由于转义字符“\”,上述 json 字符串未通过 http://jsonlint.com/ 测试。 只是想知道我该如何解决这个问题? 我正在构建一个应该返回 json 的 REST api ...我必须确保它是合法的 json。
谢谢。
【问题讨论】:
-
您可能已经启用了
magic_quotes,这意味着您的 PHP 安装配置非常糟糕和/或已经过时了。 -
您必须解释数组的来源,该代码会生成有效的 JSON:3v4l.org/pQNYR
-
“这会产生看起来像这样的 json” 不,它不会。我的猜测是,额外的反斜杠是由您输出 JSON 的方式添加的。
-
@T.J Crowder,说得好。我忘了提(抱歉,现在头冷了)我正在使用 CI 和 CI 的 REST 库。我错过了一大块信息……对不起,伙计们。我将使用 log_message() 记录 json_encode 的结果
-
所以在我调用 $this->response() 之后,json 看起来确实发生了变化。我还修改了问题的标题以更准确。
标签: php json codeigniter rest