【发布时间】:2021-11-30 21:40:48
【问题描述】:
我知道还有其他类似的帖子关于这个,我要疯了。
我有一些带有一些 JSON 的文件(根据在线验证器都是有效的,例如 jsonlint) - 请参阅下面的编辑。
$contents = file_get_contents(DATA_PATH.'/'.$type.'.json');
$data = json_decode($contents, true);
echo var_dump($data);
返回 NULL
如果我回显 $contents,我会得到输出。
我不知道出了什么问题?我了解 file_get_contents 将其转换为字符串,但是,如何将其转换为有效的 JSON?使用 fopen() 会有什么不同吗?
我什至将 JSON 添加到变量中,但结果相同......我一定很愚蠢。
注意:我将获得的大多数 JSON 将来自 API,这些基于文件的 JSON 用于测试目的。
谢谢。
编辑:示例 json
{
"data": [{
"id": 1,
"name": "Albania",
"alpha2code": "AL",
"alpha3code": "ALB",
"capital": "Tirana",
"flag": "https://cdn.elenasport.io/flags/svg/1",
"region": "Europe",
"subregion": "Southern Europe",
"timezones": [
"UTC+01:00"
]
},
{
"id": 3,
"name": "Algeria",
"alpha2code": "DZ",
"alpha3code": "DZA",
"capital": "Algiers",
"flag": "https://cdn.elenasport.io/flags/svg/3",
"region": "Africa",
"subregion": "Northern Africa",
"timezones": [
"UTC+01:00"
]
}]
}
【问题讨论】:
-
1) 检查json_last_error_msg 找出错误所在。 2) 将它和您正在使用的示例 JSON 文件添加到您的问题中。没有看到这些,我们所能做的就是猜测。
-
var_dump没有返回值,它将信息直接转储到响应中。不需要echo -
使用 json 示例更新帖子
-
我复制/粘贴了您的 JSON 并设法将其发送到
json_decode。问题一定出在其他地方。你说$contents有值,var_dump($data)显示NULL?