Несколько дней назад я опубликовал фрагмент кода об этой проблеме . Я пытаюсь рассмотреть эту проблему с другой стороны.
Итак , у меня есть запрос, и я хотел бы заполнить json-файл из его вывода. Он содержит больше записей, а не только один. Проблема в том, что весь код, который я нашел / написал, вставляет только первую запись в файл с cols. Я думаю, что нет существующего учебника об этой проблеме.
UPDATE: Пример вывода:
Array ( [cols] => Array ( [0] => Array ( [id] => [label] => Name [pattern] => [type] => string ) [1] => Array ( [id] => [label] => Start [pattern] => [type] => date ) [2] => Array ( [id] => [label] => End [pattern] => [type] => date ) ) [rows] => Array ( [0] => Array ( [c] => Array ( [0] => Array ( [v] => X ) [1] => Array ( [v] => Date(2014,08,18,21,00,00) ) [2] => Array ( [v] => Date(2014,08,18,23,00,00) ) ) ) [1] => Array ( [c] => Array ( [0] => Array ( [v] => Y ) [1] => Array ( [v] => Date(2014,08,18,21,00,00) ) [2] => Array ( [v] => Date(2014,08,18,22,00,00) ) ) ) [2] => Array ( [c] => Array ( [0] => Array ( [v] => Z ) [1] => Array ( [v] => Date(2014,08,18,23,00,00) ) [2] => Array ( [v] => Date(2014,08,18,23,30,00) ) ) ) ) )
Решение. Это была проблема кодирования символов, которая может быть обнаружена с помощью метода json_last_error ():
switch (json_last_error()) { case JSON_ERROR_NONE: echo ' - No errors'; break; case JSON_ERROR_DEPTH: echo ' - Maximum stack depth exceeded'; break; case JSON_ERROR_STATE_MISMATCH: echo ' - Underflow or the modes mismatch'; break; case JSON_ERROR_CTRL_CHAR: echo ' - Unexpected control character found'; break; case JSON_ERROR_SYNTAX: echo ' - Syntax error, malformed JSON'; break; case JSON_ERROR_UTF8: echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; break; default: echo ' - Unknown error'; break; }