Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что за JSON использует Google Web Toolkit? 
V
    Опции темы
Dims
Дата 5.10.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Google Web Toolkit возвращает формат application/json. Однако, возвращаемое содержимое не соответствует описанию отсюда: http://ru.wikipedia.org/wiki/JSON

Возвращается примерно такой код:

Код

//OK[216,0,0,0,0,0,0,0,-388,1,2,28


и так далее. Квадратные скобки могут быть вложены, текстовые значения могут быть в кавычках.

Что это за формат? Как в нём разобраться? 



Это сообщение отредактировал(а) Dims - 5.10.2009, 10:45
PM MAIL   Вверх
Dims
Дата 5.10.2009, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Всё-таки, это, видимо, обычный JSON, просто Гугль использует только массивы (видимо, для экономии).

Однако непонятно, как разобраться. У меня там возвращается набор записей, но в каждой разное число полей. Непонятно, как определить границы...
PM MAIL   Вверх
brother79
Дата 5.10.2009, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



Цитата(Dims @  5.10.2009,  11:01 Найти цитируемый пост)
Всё-таки, это, видимо, обычный JSON, просто Гугль использует только массивы (видимо, для экономии).



Что-то я обычного json'а не наблюдаю. Скобки квадратные - это массивы, могут быть вложенные, вот только что за Ok, за которым сразу идёт скобка - мне не понятно.

Если бы было скажем [216,0,0,0,0,0,0,0,-388,1,2,28] - то это как раз обычный массив по json'у.


--------------------
PM MAIL WWW   Вверх
Dims
Дата 5.10.2009, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



OK -- это ответ сервера, может быть OK, может быть EX. 

Дальше идёт нормальный массив, скобка в конце закрывается, просто я её не показал.

Непонятно, как определить границы. Там, наверное, должны быть где-то счетчики, но я не могу найти.
PM MAIL   Вверх
brother79
Дата 10.10.2009, 05:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



Цитата(Dims @  5.10.2009,  12:05 Найти цитируемый пост)
Непонятно, как определить границы. Там, наверное, должны быть где-то счетчики, но я не могу найти. 


О каких границах идёт речь? Массив от скобки-до скобки.


--------------------
PM MAIL WWW   Вверх
IDVsbruck
Дата 10.10.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 4
Всего: 22



Цитата(Dims @  5.10.2009,  10:45 Найти цитируемый пост)
Google Web Toolkit возвращает формат application/json. Однако, возвращаемое содержимое не соответствует описанию отсюда: http://ru.wikipedia.org/wiki/JSON

Сильно сомневаюсь, что GWT возвращает ответ с хидером Content-Type = "application/json". Скорее он возвращает строку и сопровождающие данные по обслуживанию данной строки для клиентского парсера, который сначала отсекает из полученной строки свои данные (к примеру - первые 2 символа результата запроса), а остальное уже переводит в нужный вид (скажем, как это делает jQuery при указании типа получаемых данных - конвертит, распознает или в xml, или получает как скрипт, или как текст, или json).
PM MAIL   Вверх
Dims
Дата 11.10.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



В общем, я всё дешифровал. Работа была прям как в Beautiful Mind smile Наверно скоро трёкнусь, как и герой фильма...

Добавлено через 1 минуту и 54 секунды
Цитата(IDVsbruck @  10.10.2009,  12:13 Найти цитируемый пост)
Сильно сомневаюсь, что GWT возвращает ответ с хидером Content-Type = "application/json".

Однако, это именно так. Сам вижу, что первые 4 символа нарушают спецификации JSON, но они там были, а дальше был JSON, а в контенттайпе был именно этот формат...

Добавлено через 3 минуты и 33 секунды
Цитата(brother79 @  10.10.2009,  05:11 Найти цитируемый пост)
О каких границах идёт речь? Массив от скобки-до скобки. 

Там в этих массивах были закодированы различные объекты Джава -- массивы строк, классы и так далее. То есть, сам JSON был лишь оболочкой, а внутри неё -- свой код.
PM MAIL   Вверх
brother79
Дата 11.10.2009, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



Цитата(Dims @  11.10.2009,  12:07 Найти цитируемый пост)
Там в этих массивах были закодированы различные объекты Джава -- массивы строк, классы и так далее. То есть, сам JSON был лишь оболочкой, а внутри неё -- свой код. 



Что значит свой код? Обычный json? так его можно через eval, или там ещё что-то кроме json ?


--------------------
PM MAIL WWW   Вверх
Dims
Дата 11.10.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Если убрать первых 4 символа и пропустить через eval, то получится массив с циферками, строками и вложенными массивами. А вот что значат все эти циферки? Это-то я и разгадывал.
PM MAIL   Вверх
brother79
Дата 12.10.2009, 05:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



Цитата(Dims @  11.10.2009,  21:45 Найти цитируемый пост)
Если убрать первых 4 символа и пропустить через eval, то получится массив с циферками, строками и вложенными массивами. А вот что значат все эти циферки? Это-то я и разгадывал. 



Но мне почему-то кажется, что это уже вопрос не по js, структуру-то ты получишь, которую отдаёт гугль


--------------------
PM MAIL WWW   Вверх
Dims
Дата 12.10.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Теперь это очевидно, но изначально я этого не знал, я думал, может есть какой-то "eval", который всё сам бы сделал.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.