如何使用json_decode?

时间:2017-07-21 20:06:44

标签: php json

我有以下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数据库的输入。

2 个答案:

答案 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));