我有以下Json文件:
[{"Datum":"21-07-2017","Zeit":"21:48","Menge":"545465476"},{"Datum":"21-07-2017","Zeit":"21:51","Menge":"78"},{"Datum":"21-07-2017","Zeit":"21:53","Menge":"456"}]
Json验证员说好了。
但我仍然不能通过php_decode()来获取这个Json文件。相反,我得到“布尔(假)”
我的代码
$jso = json_encode($jfile);
var_dump(json_decode($jso));
$error = json_last_error();
我做错了什么?
此脚本以Json格式保存对txt数据库的输入。
答案 0 :(得分:1)
您的JSON编码和解码看起来正确。您可以参考以下资源进行确认:
所以问题很可能在于你让json进入函数的方式。在你的情况下,这是通过变量" $ jfile"。
完成的我建议你做一个$ jfile变量的var_dump来查看它拥有的数据,如果有的话。
我的第一个猜测,正如其他人也指出的那样,是你从一个文件中读取json(因此是$ jfile)。这通常通过" file_get_contents"来完成。详细描述的功能here。
您的目录结构应如下所示:
.
├── readjson.php
├── some_json_data.json
你的php代码应该是这样的:
<?php
$jfile = file_get_contents('some_json_data.json');
var_dump($jfile)
$jso = json_encode($jfile);
var_dump($jso);
$decoded_json = json_decode($jso);
var_dump($decoded_json);
$error = json_last_error();
?>
请注意我如何添加更多var_dump和变量以显式监视json对象的状态。这在学习新东西时可能会有所帮助。
答案 1 :(得分:0)
我猜你必须先将文件导入php,所以$ jso将保存json数据(就文件内容而言)
$jso = file_get_contents('JSON_FILE_PATH');
//then simply use json_decode
var_dump(json_decode($jso));