![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Google Web Toolkit возвращает формат application/json. Однако, возвращаемое содержимое не соответствует описанию отсюда: http://ru.wikipedia.org/wiki/JSON
Возвращается примерно такой код:
и так далее. Квадратные скобки могут быть вложены, текстовые значения могут быть в кавычках. Что это за формат? Как в нём разобраться? Это сообщение отредактировал(а) Dims - 5.10.2009, 10:45 |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Всё-таки, это, видимо, обычный JSON, просто Гугль использует только массивы (видимо, для экономии).
Однако непонятно, как разобраться. У меня там возвращается набор записей, но в каждой разное число полей. Непонятно, как определить границы... |
|||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 1 Всего: 6 |
Что-то я обычного json'а не наблюдаю. Скобки квадратные - это массивы, могут быть вложенные, вот только что за Ok, за которым сразу идёт скобка - мне не понятно. Если бы было скажем [216,0,0,0,0,0,0,0,-388,1,2,28] - то это как раз обычный массив по json'у. |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
OK -- это ответ сервера, может быть OK, может быть EX.
Дальше идёт нормальный массив, скобка в конце закрывается, просто я её не показал. Непонятно, как определить границы. Там, наверное, должны быть где-то счетчики, но я не могу найти. |
|||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 1 Всего: 6 |
||||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 4 Всего: 22 |
Сильно сомневаюсь, что GWT возвращает ответ с хидером Content-Type = "application/json". Скорее он возвращает строку и сопровождающие данные по обслуживанию данной строки для клиентского парсера, который сначала отсекает из полученной строки свои данные (к примеру - первые 2 символа результата запроса), а остальное уже переводит в нужный вид (скажем, как это делает jQuery при указании типа получаемых данных - конвертит, распознает или в xml, или получает как скрипт, или как текст, или json). |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
В общем, я всё дешифровал. Работа была прям как в Beautiful Mind
Добавлено через 1 минуту и 54 секунды
Однако, это именно так. Сам вижу, что первые 4 символа нарушают спецификации JSON, но они там были, а дальше был JSON, а в контенттайпе был именно этот формат... Добавлено через 3 минуты и 33 секунды Там в этих массивах были закодированы различные объекты Джава -- массивы строк, классы и так далее. То есть, сам JSON был лишь оболочкой, а внутри неё -- свой код. |
|||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 1 Всего: 6 |
||||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Если убрать первых 4 символа и пропустить через eval, то получится массив с циферками, строками и вложенными массивами. А вот что значат все эти циферки? Это-то я и разгадывал.
|
|||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 1 Всего: 6 |
Но мне почему-то кажется, что это уже вопрос не по js, структуру-то ты получишь, которую отдаёт гугль |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Теперь это очевидно, но изначально я этого не знал, я думал, может есть какой-то "eval", который всё сам бы сделал.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |