【发布时间】:2014-07-30 22:13:35
【问题描述】:
这很不寻常。我有以下 JSON 文件:
settings.json
{
"somekey":"someval",
"regexes":{
"url":"/([^\/]+)(?:\/\(([^\)]+)\))?\/?([\S]+)?/"
}
}
PHP
var_dump(json_decode(file_get_contents('settings.json'),true)) 返回 null 并带有 json_last_error() 说我的 JSON 格式错误。
我一直在检查它是否不喜欢我的正则表达式中的某些字符...删除随机位并检查...有时它返回我的 JSON 对象,有时它返回 null,但我似乎无法缩小任何范围。我在这里错过了什么?
【问题讨论】:
-
我想这是返回普通 PHP 数组作为配置首选的原因列表中的一项。
-
相对于 stdClass 对象?是的,我一开始是在处理对象,然后我遇到了一个带有破折号的设置(“some-setting”),它不适用于对象:
$settings->some-setting... 所以必须在我引用 stdClass 的所有地方重写转换为数组:$settings['some-setting'] -
你可以像
$settings->{"some-setting"}那样做你想做的事。 -
@Marty 甜!我无法弄清楚它的语法......非常感谢。