2011-06-10 5 views
2

У меня есть следующий файл:PHP JSON декодировать текстовый файл

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 />'; 
    } 
+0

Я поставила ответ, но на самом деле просто нужно посмотреть на PHP руководство и посмотреть, какие аргументы функции взять и проверить примеры , Кроме того, должно быть предварительно известно, что если функция работает с строкой данных, которую вы сначала должны загрузить с помощью некоторой функции ввода-вывода файлов. – Matthew

ответ

19

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

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

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

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

Ошибка с данным файлом – KingCrunch

1

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

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

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

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

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

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

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

И это легко читаемый

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

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

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

Это недопустимый файл 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. 
*/ 
Смежные вопросы