php json_decode() Возвращает null -- как понять что не так, какая именно ошибка JSON -- РЕШЕНИЕ

Например, пусть имеется код вроде:

     $postdata = \json_decode(file_get_contents('php://input'), true);

И он для входных данных:

$a = file_get_contents('php://input');
/*
Содержит:
user_id=10&diagnostics%5B0%5D%5Bid_diag%5D=1&diagnostics%5B0%5D%5Bmethodics_id%5D=1&diagnostics%5B0%5D%5Bserver_id%5D=-1&diagnostics%5B0%5D%5Bclient_id%5D=35&diagnostics%5B0%5D%5Bdate%5D=1460408440&diagnostics%5B0%5D%5Bdata%5D%5B%5D=52&diagnostics%5B0%5D%5Bdata%5D%5B%5D=52&diagnostics%5B0%5D%5Bdata%5D%5B%5D=82&diagnostics%5B0%5D%5Bdata%5D%5B%5D=85&diagnostics%5B0%5D%5Bdata%5D%5B%5D=65&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=15&diagnostics%5B0%5D%5Bdata%5D%5B%5D=17&diagnostics%5B0%5D%5Bdata%5D%5B%5D=12&diagnostics%5B0%5D%5Bdata%5D%5B%5D=58&diagnostics%5B0%5D%5Bdata%5D%5B%5D=5&diagnostics%5B0%5D%5Bdata%5D%5B%5D=96&diagnostics%5B0%5D%5Bdata%5D%5B%5D=22&diagnostics%5B0%5D%5Bdata%5D%5B%5D=69&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=36&diagnostics%5B0%5D%5Bdata%5D%5B%5D=87&diagnostics%5B0%5D%5Bdata%5D%5B%5D=52&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=14&diagnostics%5B0%5D%5Bdata%5D%5B%5D=21&diagnostics%5B0%5D%5Bdata%5D%5B%5D=54&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=58

*/

возвращает null. Значит с JSON-ом что-то не то.

Чтобы выяснить что именно используйте json_last_error(), например так:

// укажите ваше декодируемое (которое нужно раскодировать) значение в  $string
$string = 'user_id=10&diagnostics%5B0%5D%5Bid_diag%5D=1&diagnostics%5B0%5D%5Bmethodics_id%5D=1&diagnostics%5B0%5D%5Bserver_id%5D=-1&diagnostics%5B0%5D%5Bclient_id%5D=35&diagnostics%5B0%5D%5Bdate%5D=1460408440&diagnostics%5B0%5D%5Bdata%5D%5B%5D=52&diagnostics%5B0%5D%5Bdata%5D%5B%5D=52&diagnostics%5B0%5D%5Bdata%5D%5B%5D=82&diagnostics%5B0%5D%5Bdata%5D%5B%5D=85&diagnostics%5B0%5D%5Bdata%5D%5B%5D=65&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=15&diagnostics%5B0%5D%5Bdata%5D%5B%5D=17&diagnostics%5B0%5D%5Bdata%5D%5B%5D=12&diagnostics%5B0%5D%5Bdata%5D%5B%5D=58&diagnostics%5B0%5D%5Bdata%5D%5B%5D=5&diagnostics%5B0%5D%5Bdata%5D%5B%5D=96&diagnostics%5B0%5D%5Bdata%5D%5B%5D=22&diagnostics%5B0%5D%5Bdata%5D%5B%5D=69&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=36&diagnostics%5B0%5D%5Bdata%5D%5B%5D=87&diagnostics%5B0%5D%5Bdata%5D%5B%5D=52&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=14&diagnostics%5B0%5D%5Bdata%5D%5B%5D=21&diagnostics%5B0%5D%5Bdata%5D%5B%5D=54&diagnostics%5B0%5D%5Bdata%5D%5B%5D=45&diagnostics%5B0%5D%5Bdata%5D%5B%5D=58';
    echo 'Декодируем: ' . $string;
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - Ошибок нет';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Достигнута максимальная глубина стека';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Некорректные разряды или не совпадение режимов';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Некорректный управляющий символ';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Синтаксическая ошибка, не корректный JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Некорректные символы UTF-8, возможно неверная кодировка';
        break;
        default:
            echo ' - Неизвестная ошибка';
        break;
    }

    echo PHP_EOL;



Key Words for FKN + antitotal forum (CS VSU):