Extjs Custom Reader - PullRequest
       9

Extjs Custom Reader

2 голосов
/ 15 марта 2012

У меня небольшая проблема, мне нужно загрузить некоторые данные json в свою сетку, но у меня есть специальный формат json, подобный следующему:

{"response":[
  76297,
  {"aid":66132303,"owner_id":30729520,"artist":"Шакира - Танго","title":"So objection!! I don't wanna be the exception to get a bit of your attention... I love you for free and I'm not your mother, but you don't even bother... Objections!! I'm tired of this triangle... GOT DIZZY DANCING TANGO&#3","duration":224,"url":"http:\/\/cs1663.vkontakte.ru\/u17640367\/audio\/ebde4092fde5.mp3","lyrics_id":"2203614"},
  {"aid":129159521,"owner_id":23962687,"artist":"Yann Tiersen","title":"Mother's Journey (Ennja Remix)","duration":281,"url":"http:\/\/cs6000.vkontakte.ru\/u97497795\/audio\/fb309491bc82.mp3","lyrics_id":"21301612","album":"21017129"},
  {"aid":81267321,"owner_id":673065,"artist":"Hurts","title":"Mother Nature","duration":170,"url":"http:\/\/cs4633.vkontakte.ru\/u673065\/audio\/d329378eb2d2.mp3","lyrics_id":"5693202"}]
}

Итак, первый элемент массива - это количество всех записей,и другие записи для загрузки.Если я попытаюсь загрузить такие записи в свою сетку, у меня будет пустая строка внизу, каково решение?Должен ли я использовать какой-нибудь «кастомный» ридер, как его реализовать?

1 Ответ

3 голосов
/ 16 марта 2012

Да. Скорее всего, вам потребуется расширить стандартную программу чтения Json (Ext.data.reader.Json), чтобы сначала проанализировать длину и начать анализ записей из второго элемента.

Обновление: это довольно легко сделать на самом деле.

  1. Сначала вам нужно выяснить наше место, где стандартный ридер не ведет себя так, как вы хотите. Добавьте следы к стандартному классу читателя, чтобы увидеть, что происходит. Скорее всего, это будет где-то около readResponse() метода.

  2. Создайте свой собственный класс чтения, расширяющий стандартный класс. Простое наследование.

  3. Переопределите метод, который вам нужен, с помощью новой логики.

Код ExtJs очень хорошо написан и прокомментирован. Я нашел, что это довольно интересно читать и понимать это.

В качестве дополнительного примечания я хотел бы добавить, что эта задача (расширение существующего кода ExtJs с помощью вашей функциональности) является огромной помощью, чтобы лучше понять, как работают ExtJs внутри, и после этого вам будет гораздо удобнее работать с ExtJ.

...