在Postman和jQuery中,我都得到了如下形式的响应
{"key1": "value1", "key2": "value2"}null
这个尾随的null会干扰客户端解析它的任何东西,我不知道它是从哪里来的。如果我在echo
之前error_log
编码的JSON,没有尾随的null,所以我假设它是一个字符串结束符,但我不认为PHP使用以null结尾的字符串。我如何摆脱这些null?
正在编码并返回的对象:
public function jsonSerialize()
{
return [
'internal_id' => $this->internal_id, //int
'friendly_name' => $this->friendly_name, //string
'external_id' => $this->external_id, //string
'picture' => $this->picture //string
];
}
实际的return语句就是echo(json_encode($retval));
4条答案
按热度按时间13z8s7eq1#
一旦PHP文件执行完毕,你必须手动退出或者返回,而不是回显,否则它会隐式返回
NULL
,把一切都搞砸。a14dhokn2#
也许不是最好的,但它拯救了我:
zed5wv103#
下面是Kenny给出的正确答案之外的一些代码。这可以防止在json末尾输出0或NULL:
“一旦PHP文件执行完毕,您必须手动退出或返回,而不是回显,否则它将隐式返回NULL,并将一切都搞砸。”
pdkcd3nj4#
当您使用
echo
将数据发送回前端时,我从对PHP脚本的 AJAX 调用中得到了这个错误。要在
echo
终止PHP脚本,必须使用die
和exit
以及某些情况下的return
终止脚本,如下所示