Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Применение библиотек > jquery ajax json length |
Автор: Muchenik 13.1.2010, 18:50 | ||||||
Доброго времени суток. Прошу подсказки. Проблема с получением размера объекта, который получается через Ajax. есть код
Скрипт получает массив в json вида {"data":{"236":"1109"},"uid":"972"} Проблема заключается в том, что не определяется размер массива ret.data (размер ret также не определяется) и код
выводит undefined , хотя код ниже
отрабатывает правильно и выводит все элементы. В заголовки отправляется Content-Type: text/html; charset=utf-8 при выводе alert(ret.data) выводит [object Object] Спасибо. |
Автор: IDVsbruck 14.1.2010, 14:25 |
Непонятно что ты не понял и что у тебя не получается. В запросе ты задал dataType="json", это значит, что на выходе ты получишь объект. Какой может быть размер у объекта??? Если надо сначала получить размер получаемой строки, то задавай тип как текст, замеряй размер, а потом eval("(" + ... + ")"). Но нужно ли оно? Или внеси изменение в библиотеку jQuery, чтобы до конвертации ответа в объект заносило ее размер в поле. |
Автор: Muchenik 15.1.2010, 00:59 | ||||
На входе я раскладываю массив в json. "Какой может быть размер у объекта???" - jquery умеет получать размер объекта
или даже с json вот так все работает
Т.е. мне нужно получить размер моего исходного массива. IDVsbruck, тебе понятно??? |
Автор: IDVsbruck 15.1.2010, 16:14 |
Конечно! ![]() Если же хочется воспользоваться jQuery, то и тут "засада": и size(), и length определяют размер у jQuery-объектов, к коим простой Object не относится. Так что совет - если ты все-таки отсылаешь с сервера массив, то делать это надо корректно, если все-таки объект с набором полей, то таки прийдется использовать цикл для обхода всех полей для получения их количества. |
Автор: 12345c 15.1.2010, 20:05 | ||
IDVsbruck, он хеш массивом называет, ему надо получить длину сериализованного хеша: ). Muchenik, смотрите в jQuery:
, измерить длину, а потом выполнить указанную строчку, чтобы получить json. |
Автор: IDVsbruck 16.1.2010, 12:19 |
Ха, ты на ту же удочку попался ... это ему не надо. А сериализованный хеш или просто json-объект - как его не назови - это в любом случае не перечисляемый тип и одной функцией длину не получшь - надо пробегать по нему для поиска длины. |