【问题标题】:Return JSON using PHP使用 PHP 返回 JSON
【发布时间】:2017-02-08 15:17:00
【问题描述】:

目前我正在从我的 PHP 后端返回一条消息,如下所示:

$data = [ 'message' => 'Number doesn\'t exist!'];
$this->set_response(json_encode($data), REST_Controller::HTTP_CREATED);

这将创建如下所示的消息:

"{\"message\":\"Number doesn't exist!\"}"

不过,我希望收到这样的消息:

{
    "message": "Number doesn't exist!"
}

我做错了什么?

【问题讨论】:

  • $data = [ 'message' => 'Number doesn\'t exist!']; echo json_encode($data); 预期结果返回。检查你的这个功能set_response
  • 是 set_response @devpro 中的问题
  • 同意,也许JSON_UNESCAPED_SLASHES 会解决@HaRsH
  • 我希望你现在得到解决方案。

标签: php json codeigniter


【解决方案1】:

您可以使用JSON_UNESCAPED_SLASHES 作为json_encode() 中的第二个参数。

$data = [ 'message' => 'Number doesn\'t exist!'];
$encoded = json_encode($data,JSON_UNESCAPED_SLASHES);
$this->set_response($encoded, REST_Controller::HTTP_CREATED);

其他解决方案:

$data = [ 'message' => 'Number doesn\'t exist!'];
$string = $this->set_response(json_encode($data), REST_Controller::HTTP_CREATED); // your current result
$decode = json_decode($string,true); // decode the value 
echo json_encode($decode,JSON_UNESCAPED_SLASHES); //and use JSON_UNESCAPED_SLASHES in json_encode()

【讨论】:

    【解决方案2】:

    您必须解码 JSON 响应。

    json_decode($your_response);
    

    【讨论】:

      【解决方案3】:

      兄弟,您只需将 json 称为 json_encode($data,true) 并像这样解码它 json_decode($data,true); 快乐编码 如果上述方法似乎不起作用 第二次尝试

      \ 用于转义作为响应一部分的引号 (")。

      使用 stripslashes() 去除这些。

      当一个用引号括起来的字符串包含引号时,它们必须被转义。 php中的转义字符是\

      【讨论】:

      • json 中需要的预期结果。不在数组中
      • json_encode() 只有一个参数。 decode 有 2 个参数
      猜你喜欢
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 2012-12-18
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多