【发布时间】:2023-01-09 01:14:32
【问题描述】:
为什么 php 中的 json_decode() 函数在下面的代码中不返回任何内容?
<?php
$str = "[['123'],['123']]";
print_r(json_decode($str));
?>
Result:
Literally white screen of death. Cause Im running this on browser.
笔记!
如果我将存储在变量 $str 中的字符串从双引号更改为单引号,json_decode() 将按预期工作。
前任(注意前面一段代码中的单引号/双引号与下面这段代码的比较):
<?php
$str = '[["123"],["123"]]';
print_r(json_decode($str));
?>
Result:
Array ( [0] => Array ( [0] => 123 ) [1] => Array ( [0] => 123 ) )
预先感谢您的时间和精力!上面写的代码是 .php 文件中唯一存在的东西,这意味着没有更多的代码作为上面的脚本示例的一部分编写。
【问题讨论】:
-
在这里查看(例如):json.org/json-en.html“值可以是双引号中的字符串,也可以是数字,可以是 true 或 false 或 null,也可以是对象或数组。”和“字符串是零个或多个 Unicode 字符的序列,用双引号括起来,使用反斜杠转义。字符表示为单个字符串。字符串非常像 C 或 Java 字符串。”
-
JSON RFC 明确定义分隔符为只要双引号字符。因此,您的第一个示例字符串不是有效的 JSON。