php json解码一个txt文件

时间:2011-06-10 22:34:32

标签: php json

我有以下文件:

data.txt中

{name:yekky}{name:mussie}{name:jessecasicas}

我是PHP的新手。你知道如何使用PHP解码上面的JSON吗?

我的PHP代码

var_dump(json_decode('data.txt', true));// var_dump value null

foreach ($data->name as $result) {
        echo $result.'<br />';
    }

6 个答案:

答案 0 :(得分:22)

json_decode将字符串作为参数。使用file_get_contents

读入文件
$json_data = file_get_contents('data.txt');
json_decode($json_data, true);

您需要通过在字符串周围添加引号,在对象之间添加逗号以及将对象放在包含的数组(或对象)中来将示例字符串调整为有效的JSON。

[{"name":"yekky"}, {"name":"mussie"}, {"name":"jessecasicas"}]

答案 1 :(得分:3)

正如我在your other question中提到的那样,你没有生成有效的JSON。请参阅我的答案,了解如何创建它。这将导致像

这样的东西
[{"name":"yekky"},{"name":"mussie"},{"name":"jessecasicas"}]

(我不知道,你的引号消失了,但json_encode()通常会产生有效的json)

这很容易阅读

$data = json_decode(file_get_contents('data.txt'), true);

答案 2 :(得分:1)

您的JSON数据无效。你有多个对象(并且你缺少引号),在你提供给json_decode之前,你需要一些方法将它们分开。

答案 3 :(得分:1)

$data = json_decode(file_get_contents('data.txt'), true);

但是你的JSON需要正确格式化:

[ {"name":"yekky"}, ... ]

答案 4 :(得分:1)

根据JSONLint,这不是有效的JSON文件。如果是的话,你必须先阅读它:

$jsonBytes = file_get_contents('data.json');
$data = json_decode($jsonBytes, true);
/* Do something with data.
If you set the second argument of json_decode (as above), it's an array,
otherwise an object.
*/

答案 5 :(得分:0)

你必须阅读文件!

$json = file_get_contents('data.txt');
var_dump(json_decode($json, true));