首页 > 解决方案 > Php 无法用字符串反斜杠解码 Json

问题描述

该字符串{"foo":"\\"}是有效的 json,但似乎 php 无法对其进行 json 解码。

在 php 中运行以下命令:

php > $a = '{"foo":"\\"}';
php > var_dump(json_decode($a));
php shell code:1:
NULL
php > var_dump(json_last_error_msg());
php shell code:1:
string(53) "Control character error, possibly incorrectly encoded"

这里发生了什么事?

标签: php

解决方案


{"foo":"\\"}确实是一个有效的 JSON,但是在 php 中,要拥有这个字符串,您需要先转义\

$a = '{"foo":"\\\\"}';
var_dump($a);
echo "-------" . PHP_EOL;
var_dump(json_decode($a));

输出

string(12) "{"foo":"\\"}"
-------
object(stdClass)#1 (1) {
  ["foo"]=>
  string(1) "\"
}

推荐阅读