php - 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"
这里发生了什么事?
解决方案
{"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) "\"
}
推荐阅读
- c# - 如何在 C# 中使用带有 linq 的总和按设备时间戳进行分组
- sql - Postgresql 使用 json 对象存储数据集
- javascript - 如何在插槽中获取类别值(Vuetify 日历)
- machine-learning - 不平衡样本的定义
- java - Spring Boot 测试不适用于嵌入式 kafka
- node.js - 如何使用 sed 在 Node JS 中的 Raspberry Pi 上编辑 wpa_supplicant.conf?
- c++ - 如何返回哈希表c ++中的出现次数?
- javascript - pipe() 函数的打字稿类型
- python - 如何通过 API 获取超过 1000 的速率限制的数据?
- python - 为什么我的 break 语句在 if 语句中不起作用,即使 print 语句有效?