首页 > 解决方案 > 为什么在此 JSON 字符串上使用 json_decode 会导致空值

问题描述

"op=add&item={"firstName":"test","lastName":"test","email":"test%40test.com","password":"test"}"

我将上面的 JSON 正文传递给我的 PHP 后端,当尝试对其使用 json_decode 时,它​​会导致 null。我使用了 json_last_error() ,它指出存在语法问题。使用 jsonlint.com,它给了我这个错误:

Error: Parse error on line 1:
"op=add&item={"firstName ":"test "
---------------^
Expecting 'EOF', '}', ':', ',', ']', got 'undefined'

我已尝试解决此错误,但未能获得成功的响应。有人可以描述问题可能是什么吗?

标签: phpjsonjsondecoder

解决方案


为了json_decode()工作,它需要一个字符串。查看您的语法,外部引号似乎不正确。

你的:

"op=add&item={"firstName":"test","lastName":"test","email":"test%40test.com","password":"test"}"

他们应该是:

'op=add&item={"firstName":"test","lastName":"test","email":"test%40test.com","password":"test"}'

如果你使用单引号,它是一个正确的字符串。哪个可以解码。


推荐阅读