PHP JSON декодировать текстовый файл - PullRequest
2 голосов
/ 11 июня 2011

У меня есть следующий файл:

data.txt

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

Я новичок в PHP. Знаете ли вы, как я могу использовать декодировать вышеупомянутый JSON с помощью PHP?

Мой PHP-код

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

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

Ответы [ 6 ]

22 голосов
/ 11 июня 2011

json_decode принимает строку в качестве аргумента. Прочитать в файле с file_get_contents

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

Вам необходимо настроить строку примера так, чтобы она действовала в формате JSON, добавив кавычки вокруг строк, запятые между объектами и поместив объекты в содержащий массив (или объект).

[{"name":"yekky"}, {"name":"mussie"}, {"name":"jessecasicas"}]
3 голосов
/ 11 июня 2011

Как я уже упоминал в ваш другой вопрос вы не производите действительный JSON. Смотрите мой ответ там, о том, как его создать. Это приведет к чему-то вроде

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

(я не знаю, куда ушли ваши цитаты, но json_encode() обычно выдает действительный json)

И это легко читается

$data = json_decode(file_get_contents('data.txt'), true);
1 голос
/ 11 июня 2011

Это не правильный файл JSON, согласно JSONLint .Если бы это было так, вы бы сначала прочитали:

$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.
*/
1 голос
/ 11 июня 2011
$data = json_decode(file_get_contents('data.txt'), true);

Но ваш JSON должен быть правильно отформатирован:

[ {"name":"yekky"}, ... ]
1 голос
/ 11 июня 2011

Ваши данные JSON неверны.Там у вас есть несколько объектов (и вы пропускаете кавычки), вам нужно каким-то образом разделить их, прежде чем передать в json_decode.

0 голосов
/ 11 июня 2011

Вы должны прочитать файл!

$json = file_get_contents('data.txt');
var_dump(json_decode($json, true));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...