Спарсил инфу с сайта, создал много вложенный массив и сконвертировал его в Json получилась такая текстовка: После этого, в том же проекте его расшифровал через функцию json_decode($json,true); все ок - расшифровалось. сохранил в txt файлик Json "шифр". теерь открываю новый проект, пишу: PHP: <?phpheader("Content-Type: text/html; charset=UTF-8");$file = file_get_contents('file.json');echo (strlen($file));$a = json_decode($file,true);echo $a;var_dump($a);?> результат : 231611 NULL не могу понять, где мой расшифрованный массив? Почему json_decode не пашет? кодировка = utf-8 без BOM хелп плз UPD. Отладил кое как, вроде бы ошибка JSON_ERROR_SYNTAX Что не так в синтаксисе не пойму? у меня был массив 3 уровневой Array['1']['2']['3'] После этого заюзал json_encode($array);
Начал тестить, тоже не работало, но когда задал кодировку обоим файлам, пхп скрипту и самому файлу file.json "ОБОИМ", утф без бум, все заработало!
встретились 1-2 слова с кавычками и все рушилось, думал что функция автоматом экранирует там все, но она оказалась не такая умная) Решил вопрос через addslashes, топ можно удалять)
Я просто оставлю это здесь PHP: if (! function_exists('json_encode')){ /** * Convert a PHP scalar, array or hash to JS scalar/array/hash. This function is * an analog of json_encode(), but it can work with a non-UTF8 input and does not * analyze the passed data. Output format must be fully JSON compatible. * * A port of JsHttpRequest (http://en.dklab.ru) * (C) Dmitry Koterov, http://en.dklab.ru * * @param mixed $a Any structure to convert to JS. * @return string JavaScript equivalent structure. */ function json_encode($a = false) { if (is_null($a)) return 'null'; if ($a === false) return 'false'; if ($a === true) return 'true'; if (is_scalar($a)) { if (is_float($a)) { // Always use "." for floats. $a = str_replace(",", ".", strval($a)); } static $jsonReplaces = array( array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"') ); return '"'.str_replace($jsonReplaces[0], $jsonReplaces[1], $a).'"'; } $isList = true; for ($i = 0, reset($a); $i < count($a); $i++, next($a)) { if (key($a) !== $i) { $isList = false; break; } } $result = array(); if ($isList) { foreach ($a as $v) { $result[] = json_encode($v); } return '[ '.join(', ', $result).' ]'; } else { foreach ($a as $k => $v) { $result[] = json_encode($k).': '.json_encode($v); } return '{ '.join(', ', $result).' }'; } }}