css, html, php, javascript, jQuery, ajax … – решения, примеры, рецепты
3 Мар
Вероятно Вы уже прочитали статью «Что такое JSON?«. Если нет, то я рекомендую сначала ознакомиться именно с ней, чтобы понять все с самого начала. А здесь мы поговорим о преобразованиях объектов JavaScript в формат JSON и обратных преобразованиях строки ответа от сервера в формате JSON в объект JavaScript, а также рассмотрим средства для работы с JSON на стороне сервера.
Дуглас Крокфорд (Douglas Crockford), который собственно и предложил формат JSON в качестве альтернативы XML при передаче данных от сервера клиенту, в рамках этого проекта разработал специальную утилиту, предназначенную для упомянутых выше преобразований. Исходник можно найти по адресу http://www.json.org/js.html.
В предыдущей статье о JSON мы уже немного коснулись преобразования строки данных в объект JavaScript с помощью функции eval(), но все-таки нельзя забывать о том, что функция эта не только поможет интерпретировать данные в формат JSON, но и выполнит любой JavaScript-код, который будет ей передан. Так как это обстоятельство может представлять собой потенциальную угрозу, логичнее воспользоваться утилитой Дугласа Крокфорда.
Но давайте обо всем по порядку. Для начала подключим утилиту к нужному файлу:
<script src="json.js" type="text/javascript"></script>
Создадим объект oAuto обычным способом, забыв о литеральной нотации.
var oAuto = new Object(); oAuto.firm = "Audi"; oAuto.model = "A6"; oAuto.year = 2008; oAuto.price = 78000; oAuto.sellers = new Array( "Фирма А", "Фирма Б", "Фирма В" );
Передадим объект методу JSON.stringify()
document.write(JSON.stringify(oAuto));
и в результате работы этого небольшого кусочка кода будет выведена строка в формате JSON, которую можно передавать по любому адресу.
{"firm":"Audi","model":"A6","year":2008,
"price":78000,"sellers":["Фирма А","Фирма Б","Фирма В"]}
Предположим теперь, что эту самую строку мы получили в качестве ответа от сервера и ее надо преобразовать в объект JavaScript. Так нет ничего проще. Передаем строку методу JSON.parse()
var oAuto = JSON.parse(sAuto);
и получаем объект JavaScript.
Вы можете скачать исходный код примера, и испытать его на своем сайте.
Необходимо упомянуть также, что метод JSON.parse() может принимать опционально еще один параметр.
var myObject = JSON.parse(myJSONtext, filter);
Более полную информацию Вы всегда можете найти на сайте http://www.json.org/.
Мы вкратце познакомились с тем, как можно работать с данными в формате JSON на стороне клиента, а как обстоит дело при работе на стороне сервера? Оказывается существует довольно много программного обеспечения для работы с JSON в языках на которых пишутся серверные сценарии. JSON может применяться в Pyton, C#/.NET, PHP, ColdFusion, Perl, Java и т.д. Полный список можно найти на http://www.json.org/, а я для примера выбрал PHP, как наиболее близкий мне.
Утилита JSON-PHP написана Михалем Мигурски (Michal Migurski). Сама утилита – это один файл JSON.PHP, но для работы с утилитой требуется библиотека PEAR (PHP Extension and Application Repository). Скачать утилиту можно отсюда http://pear.php.net/pepr/pepr-proposal-show.php?id=198.
Если Ваш хостер не удосужился включить библиотеку PEAR – не расстраивайтесь. Вы вполне можете сделать все самостоятельно. Не обязательно даже иметь права администратора сервера. Я приведу ссылки. Кому очень понадобится – тот обязательно разберется.
http://pear.php.net/manual/en/installation.getting.php – см. раздел «PEAR in hosting environments».
В принципе нужно только получить инсталляционный файл, загрузить его на свой сервер, вызвать в адресной строке браузера и далее только следовать инструкциям.
А здесь посмотрите раздел «Динамическая коррекция пути к включаемым файлам».
Разберем все на примере. Пусть имеем такое определение класса (для PHP5)
class Auto {
public $firm;
public $model;
public $year;
public $price;
public $sellers;
function Auto($firm,$model,$year,$price) {
$this->firm = $firm;
$this->model = $model;
$this->year = $year;
$this->price = $price;
$this->sellers = array();
}
}
Используем этот класс так:
$oAuto = new Auto("Audi", "A6", 2008, 78000);
$oAuto->sellers[0] = "Фирма А";
$oAuto->sellers[1] = "Фирма Б";
$oAuto->sellers[2] = "Фирма В";
Теперь то, что нас интересует больше всего. Подключаем утилиту JSON-PHP, создаем новый экземпляр объекта Services_JSON и передаем объект $oAuto методу encode():
require_once("JSON.php");
$json = new Services_JSON();
$sJSONText = $json->encode($oAuto);
В результате переменная $sJSONText будет содержать строку в формате JSON:
{"firm":"Audi","model":"A6","year":2008,"price":78000,
"sellers":["\u0424\u0438\u0440\u043c\u0430 \u0410","\u0424\u0438\u0440\u043c\u0430 \u0411","\u0424\u0438\u0440\u043c\u0430 \u0412"]}
Здесь хочу обратить Ваше внимание на то, что утилита JSON-PHP понимает строки или в ASCII, или в UTF-8. Поэтому существенный выигрыш можно получить при использовании латинских символов, тогда как использование кириллицы в кодировке windows-1251 может привести к увеличению объема данных. Обратите внимание на то место в строке, где должны передаваться Фирма А, Фирма Б, Фирма В.
Но цели мы достигли – объект $oAuto готов к передаче в сценарий на языке JavaScript.
Разберем обратную операцию – преобразование строки текста в формате JSON в объект PHP. Все, что для этого нужно сделать, это передать строку методу decode():
$value = $json->decode($sJSONText);
Если теперь использовать например print_r(), то мы сможем убедиться, что объект был создан:
( [firm] => Audi [model] => A6 [year] => 2008 [price] => 78000 [sellers] => Array ( [0] => Фирма А [1] => Фирма Б [2] => Фирма В ) )
Все это есть в примере, который Вы сможете скачать. Пример включает и утилиту JSON-PHP. Естественно, Вам придется немного поправить пример в той части, где корректируются пути к библиотеке PEAR, либо удалить этот фрагмент кода, если библиотека у Вас уже подключена.
Архив с примером можно скачать здесь.
Что можно еще сказать? Разве что упомянуть о том, что утилита JSON-PHP не единственная для работы с JSON на стороне сервера. Существует расширение PHP – php-json (написано на C Омаром Килани (Omar Kilani)), однако для его установки потребуется умение устанавливать модули расширения PHP. Вот и все, пожалуй.
Буду рад, если найдете время для того, чтобы оставить свои отзывы…
Отзывов (52) на «Как работать с JSON?»
Ваши статьи очень интересны, доходчивы и что самое главное – содержат яркие примеры, ваш блог стоит на вооружении !:))
МОЛОДЕЦ. ПРОСТО НЕТ СЛОВ. КРАТКОСТЬ – СЕСТРА ТАЛАНТА.
Лучше всего использовать php функцию json_encode
Лучше. Если на сервере PHP5 и собран с библиотекой json.
Большое спасибо за статьи!
Подскажите, пожалуйста, как использовать обработанный результат выполнения AJAX-запроса, например, $.getJSON, вне данного объекта jQuery?
Есть функция, в которой происходит вызов $.getJSON.
Для использования результата обработки данных в $.getJSON применяю глобальную переменную.
Проблема в том, что использование этой глобальной переменной происходит раньше, чем приходит ответ сервера. Соответственно значение этой переменной присвоится не успевает.
Как сделать так, чтобы дальнейшая работа с этой глобальной переменной происходила только после присвоения ей значения в обработчике $.getJSON ?
Михаил, но я вряд ли вот так запросто Вам смогу ответить. Просто не совсем понятна логика: результат выполнения функции используется раньше, чем он получен??? Единственное, что можно ответить тут – используйте этот результат после того, как его получите. Честно, Михаил, я просто не совсем въезжаю в вопрос…
В коде всё идёт последовательно.
1)определяется глобальная пременная;
2)присваевается ей некоторое значение;
3)вызывается функция, в которой происходит AJAX-запрос, в коллбеке AJAX-запроса добавляется ещё одно значение к глобальной переменной;
4)после этой функции просиходит дальнейшее использование глобальной переменной.
И проблема в том, что шаг 4 выполняется раньше, чем коллбек AJAX-запроса(раньше, чем ответит сервер). Т.е. раньше того, как к глобальной переменной добавится ещё одно значение, которое передал сервер.
Если же после шага 3 и перед шагом 4 сделать alert(), то в шаге 4 глобальная переменная уже будет с дополнительным значением, которое она получила в коллбеке, т.е. вызовом алерта происходит достаточная задержка выполнения скрипта и к глобальной переменной успевает добавиться новое значение.
Просто данный AJAX-запрос, который в фунции шага 3, приходится вызывать не один раз. Потому и заключил его в функцию, чтобы немного снизить объём кода.
Скажите Михаил, а логика Вашей программы не позволяет вызывать функцию, использующую результат, возвращенный Ajax-запросом, из опций этого запроса? Ну, например, (если использовать jQuery.ajax(option)) вызывать эту функцию в опции complete. Тогда она гарантировано не будет вызвана до того, как будет получен результат.
P.S. Мы наверное немножко в разных терминах с Вами пишем, но я думаю, что в общем смысл моего ответа-вопроса не потерялся.
хотел сделать так: http://pastie.caboo.se/203322
но в итоге пришлось сделать так: http://pastie.caboo.se/203338
В последнем варианте сделал без глобальной переменной. Пришлось вынести AJAX-запрос из функции и делать всё в complete. Т.е. получается повторение кода. Но другого варианта пока не вижу, т.к. не знаю как использовать значение, полученное в AJAX-запросе, после того как AJAX-запрос завершится, и вне Query.ajax(option).
Может стоит поискать решение в использовании кроме javascript еще и PHP например? Сохранить необходимые данные в сессии и вытаскивать их оттуда? Ну или что-то в этом роде…
Все-таки, насколько я понял, приложение очень динамическое, что-то вроде выбора товаров из изменяющегося select’a…
Использую RubyOnRails.
Но для этого случая сессионные переменные не подходят. Дело не в них.
Просто хотелось использовать значение полученное с сервера вне jQuery.ajax(option). Но судя по всему это не возможно и видимо от моего второго варианта никак не отойти.
В PHP5 можно использовать json_encode(), json_decode()
Вот у меня тоже облом недавно получился – написал человеку скрипты на php 5, потом взглянул на его хостинг… а там php 4 !
Вместо json_encode пришлось использовать class JSON_Services
Еще не скачал а уже понравиось
Спасибо, статья толковая.
Добавьте пожалуйста многомерные массивы, типа>
var sellers = new Array();
sellers [0] = new Object();
sellers [0]["Name"] = «Müller»;
sellers [0]["Vorname"] = «Hans»;
sellers [0]["Wohnort"] = «Dresden»;
sellers [1] = new Object();
sellers [1]["Name"] = «Schulze»;
sellers [1]["Vorname"] = «Frauke»;
sellers [1]["Wohnort"] = «Berlin»;
oAuto.sellers = sellers;
Ещё раз спасибо!
А вот пример кодирования сервером строки JSON при помощи стандартной функции в php «json_encode()» и добавочной к ней еще одной самописной.
В результате русские буковки остаются русскими.
Исходный объект в кодировке UTF-8.
В данном случае необходимо просто вывести список того,что находится в папке.
name=$name;
$this->type=$type;
$this->size=$size;
}
}
class dir{
var $now_directory = array();
function get_dir(){return $this->now_directory;}
}
function utf8_JSON_russian_cyr($str){
$arr_replace_symbols = array
(
‘\u0410′ => ‘А’, ‘\u0430′ => ‘а’,
‘\u0411′ => ‘Б’, ‘\u0431′ => ‘б’,
‘\u0412′ => ‘В’, ‘\u0432′ => ‘в’,
‘\u0413′ => ‘Г’, ‘\u0433′ => ‘г’,
‘\u0414′ => ‘Д’, ‘\u0434′ => ‘д’,
‘\u0415′ => ‘Е’, ‘\u0435′ => ‘е’,
‘\u0401′ => ‘Ё’, ‘\u0451′ => ‘ё’,
‘\u0416′ => ‘Ж’, ‘\u0436′ => ‘ж’,
‘\u0417′ => ‘З’, ‘\u0437′ => ‘з’,
‘\u0418′ => ‘И’, ‘\u0438′ => ‘и’,
‘\u0419′ => ‘Й’, ‘\u0439′ => ‘й’,
‘\u041a’ => ‘К’, ‘\u043a’ => ‘к’,
‘\u041b’ => ‘Л’, ‘\u043b’ => ‘л’,
‘\u041c’ => ‘М’, ‘\u043c’ => ‘м’,
‘\u041d’ => ‘Н’, ‘\u043d’ => ‘н’,
‘\u041e’ => ‘О’, ‘\u043e’ => ‘о’,
‘\u041f’ => ‘П’, ‘\u043f’ => ‘п’,
‘\u0420′ => ‘Р’, ‘\u0440′ => ‘р’,
‘\u0421′ => ‘С’, ‘\u0441′ => ‘с’,
‘\u0422′ => ‘Т’, ‘\u0442′ => ‘т’,
‘\u0423′ => ‘У’, ‘\u0443′ => ‘у’,
‘\u0424′ => ‘Ф’, ‘\u0444′ => ‘ф’,
‘\u0425′ => ‘Х’, ‘\u0445′ => ‘х’,
‘\u0426′ => ‘Ц’, ‘\u0446′ => ‘ц’,
‘\u0427′ => ‘Ч’, ‘\u0447′ => ‘ч’,
‘\u0428′ => ‘Ш’, ‘\u0448′ => ‘ш’,
‘\u0429′ => ‘Щ’, ‘\u0449′ => ‘щ’,
‘\u042a’ => ‘Ъ’, ‘\u044a’ => ‘ъ’,
‘\u042d’ => ‘Ы’, ‘\u044b’ => ‘ы’,
‘\u042c’ => ‘Ь’, ‘\u044c’ => ‘ь’,
‘\u042d’ => ‘Э’, ‘\u044d’ => ‘э’,
‘\u042e’ => ‘Ю’, ‘\u044e’ => ‘ю’,
‘\u042f’ => ‘Я’, ‘\u044f’ => ‘я’
);
foreach($arr_replace_symbols as $from_gluk => $to_normal){
$str = str_replace ($from_gluk,$to_normal,$str);
}
return $str;
};
//в действии
$current_dir= new dir;
$current_dir->now_directory[] = new dirElement(‘name’,'dir’,'500mb’);
$current_dir->now_directory[] = new dirElement(‘АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЭЬЭЮЯ’, ‘абвгдеёжзийклмнопрстуфхцчшщъыьэюя’, ‘50mb’);
$first_json_str = json_encode($current_dir->now_directory);
$last_json_str = utf8_JSON_russian_cyr($first_json_str);
echo $last_json_str;
?>
—–
выводимый результат:
[{"name":"name","type":"dir","size":"500mb"},{"name":"АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЭЬЭЮЯ", "type":"абвгдеёжзийклмнопрстуфхцчшщъыьэюя", "size":"50mb"}]
Если php4 то подключаем json.php и
$json = new Services_JSON;
$str=$json->encode($return);
print_r($str);
//print_r(json_encode($return));
Супер блог!!!
Все бы хорошо но никак не могу добиться отображения руских названий.
В БД поле имеет кодировку СР1251
после json_encode($str) – вместо руских названий – null
если просто вывести $str -все нормально, подскажите что сделать?
Если Вам подойдет такой вариант, то кодировку данных можно изменить сразу же после подключения к БД, выполнив такие запросы:
«SET CHARACTER SET ‘utf8′»
«SET NAMES ‘utf8′»
Попробовать можно, но я нашел альтернативу json_encode работает и с WIN1251 (в том числе и с кирилицей):
if (!function_exists(‘json_encode_’)) {
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.
return floatval(str_replace(«,», «.», strval($a)));
}
if (is_string($a)) {
static $jsonReplaces = array(array(«\\», «/», «\n», «\t», «\r», «\b», «\f», ‘»‘), array(‘\\\\’, ‘\\/’, ‘\\n’, ‘\\t’, ‘\\r’, ‘\\b’, ‘\\f’, ‘\»‘));
return ‘»‘ . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . ‘»‘;
}
else
return $a;
}
$isList = true;
for ($i = 0, reset($a); $i $v) $result[] = json_encode_($k).’:’.json_encode_($v);
return ‘{‘ . join(‘,’, $result) . ‘}’;
}
}
}
echo json_encode_($ret);
Я немного упростил функцию представленную в 16 комментарии и получилось у меня следующее:
function json_encode_cyr($str) {
$arr_replace_utf = array(‘\u0410′, ‘\u0430′,’\u0411′,’\u0431′,’\u0412′,’\u0432′,’\u0413′,’\u0433′,’\u0414′,’\u0434′,’\u0415′,’\u0435′,’\u0401′,’\u0451′,’\u0416′,’\u0436′,
‘\u0417′,’\u0437′,’\u0418′,’\u0438′,’\u0419′,’\u0439′,’\u041a’,'\u043a’,'\u041b’,'\u043b’,'\u041c’,'\u043c’,'\u041d’,'\u043d’,'\u041e’,'\u043e’,'\u041f’,'\u043f’,
‘\u0420′,’\u0440′,’\u0421′,’\u0441′,’\u0422′,’\u0442′,’\u0423′,’\u0443′,’\u0424′,’\u0444′,’\u0425′,’\u0445′,’\u0426′,’\u0446′,’\u0427′,’\u0447′,’\u0428′,’\u0448′,
‘\u0429′,’\u0449′,’\u042a’,'\u044a’,'\u042d’,'\u044b’,'\u042c’,'\u044c’,'\u042d’,'\u044d’,'\u042e’,'\u044e’,'\u042f’,'\u044f’);
$arr_replace_cyr = array(‘А’, ‘а’, ‘Б’, ‘б’, ‘В’, ‘в’, ‘Г’, ‘г’, ‘Д’, ‘д’, ‘Е’, ‘е’, ‘Ё’, ‘ё’, ‘Ж’,'ж’,'З’,'з’,'И’,'и’,'Й’,'й’,'К’,'к’,'Л’,'л’,'М’,'м’,'Н’,'н’,'О’,'о’,'П’,'п’,'Р’,'р’,'С’,'с’,'Т’,'т’,'У’,'у’,'Ф’,'ф’,'Х’,'х’,'Ц’,'ц’,'Ч’,'ч’,'Ш’,'ш’,'Щ’,'щ’,'Ъ’,'ъ’,'Ы’,'ы’,'Ь’,'ь’,'Э’,'э’,'Ю’,'ю’,'Я’,'я’);
$str1 = json_encode($str);
$str2 = str_replace($arr_replace_utf,$arr_replace_cyr,$str1);
return $str2;
}
Геннадий, хотела бы немножко поправить:
>Если Вам подойдет такой вариант, то кодировку
> данных можно изменить сразу же после подключения
> к БД, выполнив такие запросы:
> “SET CHARACTER SET ‘utf8′”
> “SET NAMES ‘utf8′”
Достаточно будет просто ‘SET NAMES utf8′, впрочем, дело вкуса.
И да, большое вам спасибо за то, что вы делаете, я с большим удовольствием вас читаю.
Добрый день, Gennady!
Вопрос скорее концептуальный.
Подгружаю я на настраничку описания фильмов (9 фильмов на страничку).
Объект «фильм 2
(Скриншот;
Длина;
Описние;
итд)
Как будет правильней подгружать аякс запросом 1 объкт «фильм», или сделать массив объектов и передать все 9 объктов разом?
Имхо, массив объектов будет выгоднее. Зачем гонять 9 ajax-запросов?
Ясно, благодарю за ответ.
И немного оффтоп: есть ли какой-нибудь редактор с проверкой синтксиса javascript+jquery.
Не поставил точку с запятой или вместо append apend или еще что, а аля компилятор вежливо подскажет что не так.
Не озадачивался, мне вполне достаточно Zend Studio, поскольку все равно с PHP плотно работаю, в принципе в нем подсветка синтаксиса и JS есть. А вот отладку без Fire Bug для себя уже давно просто не мыслю. Он все не только рассказывает, а еще и показывает
Artik20003, попробуйте javascript lint (http://www.javascriptlint.com/) поставить в свой редактор (я к geany прикрутил). По требованию — проверяем синтаксис, одним нажатием, не грузит комп постоянной перепроверкой «на каждый чих» (Комодо этим убил просто). Насчет несуществующих методов jQuery — тут сам не знаю
Если кто подскажет pipe-ориентированную утилиту подобного плана — буду очень признателен
Спасибо, отличная статья. И вообще замечательный блог, буду восполнять им свои пробелы с jquery Ajax!
Добрый день!
Вот делаю так:
.
.
.
$sql=»select * from users where email=’$serch’»;
$result = mysql_query($sql);
for ($i=0; $i array($nameM, $vnutrM));
$output = $json -> encode($totals);
print ($output);
Кодировка базы данных UTF8 при попытке передовать англ. символы – все нормально…. но при попытке передать рус. – получаются траблы (encode($totals); возварщает пустіе занчения.)…..
Как с єтим бороться???
А кодировка самого файла, где выполняется запрос к базе как-то определена? Например передачей заголовка
header(‘Content-Type: text/html; charset=utf-8′);
да
require_once(‘JSON.php’);
header(‘Content-type: application/json; charset=utf-8′);
header(‘Cache-Control: no-cache’);
Вместо русских символов выадет
\u0000\u0000\u0000\u0000 …
Посмотрите phpinfo у себя, какая версия, может Вам и не надо JSON.php подключать, может пятерка и собрана с поддержкой json?
таки да… phpinfo :
json support enabled
json version 1.2.1
убераю require_once(‘JSON.php’); и $json = new Services_JSON();
меняю $output = $json -> encode($totals); на $output = json_encode($totals);
в результате null Вместо русских символов
Спасибо за материалы! По Вашему сайту разобрался и с JQuery, и с JSON
Оказалось, что все делается очень просто и красиво. А JSON действительно удобнее ХМЛ’а!
Возникла проблема с json – firefox упрямо отказывается принимать ответ в этом формате от сервера. Использую плагин Form, функция ajaxSubmit, dataType: ‘json’. В опере все работает. Ответ сервера содержит например
{«val1″:»fff», «val2″:»1″}
пробовал и без кавычек:
{val1:»fff», val2:»1″}
function(data){alert(data.val1)} отказывается работать. Помогите, плиз
Александр, умного не подскажу, поскольку в FF верю
Может почистить ему кэш?
Спасибо за оперативность
Уже все работает, хотя почему был такой результат – ума не приложу. Единственный ответ, который приходит в голову – то что в переменных объекта был какой-то лишний символ, который не воспринимался ФФ. Но программирование – вещь такая, без танцев с бубном ничего не получится
Огромное спасибо Вам за ваш блог. Про jquery узнал совершенно недавно, но благодаря Вам уже пишу довольно сложные сайты с использованием этой библиотеки.
А есть вообще разница между массивом больших букв А и маленькой а ?
А есть вообще разница между массивом больших букв А и маленькой а ?
Есть
. Прежде, чем задавать вопрос, подумайте, поймут ли его те, кому он адресован.
Gooody, используйте iconv(, «UTF-8″, ) перед тем как кодировать в JSON.
Огромное спасибо за информацию!!!
Возникла проблема с обработкой json ответа от сервера.
Допустим на стороне сервера код
class Auto {
public $firm;
public $model;
public $year;
public $price;
public $sellers;
function Auto($firm,$model,$year,$price) {
$this->firm = $firm;
$this->model = $model;
$this->year = $year;
$this->price = $price;
$this->sellers = array();
}
}
$oAuto = new Auto(«Audi», «A6″, 2008, 78000);
$oAuto->sellers[0] = «1″;
$oAuto->sellers[1] = «2″;
$oAuto->sellers[2] = «3″;
$sJSONText = ($json->encode($oAuto);
echo $sJSONText;
На стороне клиента:
function serverRequest()
{
if( req.readyState == 4 )
{
if (req.status == 200)
{
var sAuto = JSON.parse(req.responseText);
alert(sAuto.firm);
}
else if (req.status == 404)
{
alert («Requested URL is not found.»);
}
else if (req.status == 403)
{
alert(«Access denied.»);
}
else
{
alert(«status is » + req.status);
}
}
}
Происходит ошибка. Проверяю с помощью alert ответ от сервера – получаю строку {«firm»:»Audi»,»model»:»A6″,»year»:»2008″,»price»:»78000″,»sellers»:["1","2","3"]}. Если просто эту же строку вместо responseText подставить в обработчик – все замечательно работает. Вчем может быть проблема, подскажите.
А что по этому поводу говорят какие-либо средства отладки? Тот же FireBug например?
Всем привет. Столкнулся с непонятным багом при добавлении json.js. Вот код простой html странички
Кто знает че за фигня??
Есть форум, на котором помогают решить технические вопросы, которые здесь решать не совсем удобно и уместно.
Отлично!
Помогите, пожалуйста.
Что это такое и как этим можно справится. Несколько дней назад все было нормально.
Fail to decompress subtitles JSON
cannot display subtitles
Переустанавливала Java и браузеры. Ничего не помогает.
Ну, Java-то тут точно не при чем. Следуем точно понимать, что Java и JavaScript – это разные языки. Да и браузеры вероятно трогать не стоило….
Откуда Вы получаете данные в формате JSON? Их формирует Ваш сервер? Или это какой-то web-сервис? Вот и надо смотреть, во-первых, корректные ли данные поступают из источника, а во-вторых, как происходит их обработка.
Если раньше все в порядке было, то вероятно что-то поменялось в источнике данных?
Не думаю, что дело в источнике. онлайн видео с субтитрами – viki.com
Спасибо за ответ. Наверное дело в системе. После ночных и дневных раздумий решила её переустановить.
Еще раз спасибо, я в этих скриптах понимаю ноль целых, ноль десятых.
Оставьте отзыв