Задать вопрос
@imagance

Почему декодирование JSON возвращает null?

Декодирование json возвращает null. Я пробовал преобразовать в utf8 но это не помогло, использовал все варианты которые можно. json_last_error() возвращает 4. Помогите пожалуйста.

$str = file_get_contents("data.json");
$file = json_decode($str);
var_dump($file);

{"login":"igor","password":"qwerty"}
{"login":"igor","password":"qwerty"}
{"login":"igor","password":"qwerty"}
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Не правильный json, множественные корневые элементы.

[
   {
      "login":"igor",
      "password":"qwerty"
   },
   {
      "login":"igor",
      "password":"qwerty"
   },
   {
      "login":"igor",
      "password":"qwerty"
   }
]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Сначала прочитайте ваш файл построчно, а уже потом эти строки раскодируйте в цикле:
<?php

// Показ ошибок:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

// Кодировка документа для браузера:
header('Content-Type: text/plain; charset=UTF-8');

$arr = file('data.json'); // Читаем файл в массив построчно

// Раскодируем строки как JSON и записываем обратно в массив:

foreach ($arr as &$val) {
    $val = json_decode($val,  true);
}


print_r($arr); // Выводим результат
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы