json_decode() возвращает null, хотя file_get_contents() работает отлично, даже если json действителен

Привет всем, я читаю некоторые данные из txt-файла с помощью php, используя

file_get_contents('../../Datafiles/allThreads.txt');

это возвращает следующую строку

[{"OP":"ding","threadName":"","content":"","ID":6}]

когда я пытаюсь выполнить проверку с помощью lint, у меня нет проблем, поэтому json действителен.

Но проблема в том, что когда я вызываю json_decode, он продолжает возвращать значение null:

$currentThreadasList = json_decode('../../Datafiles/allThreads.txt');

Почему это происходит? я соблюдаю все правила?


person s3j80    schedule 17.11.2019    source источник
comment
вы должны указать содержимое в json_decode, а не путь   -  person Anatoliy R    schedule 17.11.2019


Ответы (2)


Вы можете сделать это так:

//storing json contents in a variable.
$json_contents = file_get_contents('../../Datafiles/allThreads.txt');

//decode json
$currentThreadasList = json_decode($json_contents, TRUE)

Редактировать-1:

Вы пробовали следующее:

$currentThreadasList = json_decode(file_get_contents('../../Datafiles/allThreads.txt'), TRUE);
person oreopot    schedule 17.11.2019
comment
о, да, я на самом деле уже делаю это, просто это не включено в вопрос, моя ошибка - person s3j80; 17.11.2019

Ну этот кусок кода

$currentThreadasList = json_decode('../../Datafiles/allThreads.txt');

не работает, потому что первый параметр json_decode должен быть строкой JSON, а не путем. Просто передайте содержимое файла в качестве параметра, например:

$yourJsonDecodedArray = json_decode(file_get_contents('../../Datafiles/allThreads.txt'), TRUE);
person Alberto Sinigaglia    schedule 17.11.2019