2013-09-02 5 views
1

У меня есть длинный массив json, который нужно отправить в мобильное приложение html5 и проанализировать. Весь массив имеет около 700kb (gziped до 150kb), и на данный момент это 554976 символов. Но он будет увеличиваться во времени.

Использование jquery для разбора json, мое приложение падает при попытке его разбора. И так jsonlint, json parser.fr и любой другой онлайн-проверщик json, я стараюсь, поэтому я предполагаю, что eval() тоже не является вариантом.

Возможно, это широкий вопрос, но какова максимальная допустимая длина для массива json?

Я уже удалил столько данных, сколько могу, из массива, единственный вариант, о котором я могу думать, состоит в том, чтобы разделить массив на 3-4 вызова сервера и разобрать его отдельно в приложении. Есть ли другой вариант?

EDIT

Благодаря @fabien для указания, что если jsonlint врезается есть проблема на JSON. В одном из узлов был скрытый «пространственный» символ. Он правильно разбирался на сервере, но не на клиенте.

+0

Вы действительно имеете в виду «крушение» или больше похоже на «замораживание»? – Sirko

+0

'eval', несомненно, будет быстрее и эффективнее памяти, чем' $ .parseJSON'. Также посмотрите на 'JSON.parse' (не полностью перекрестный браузер) – Petah

+0

http://stackoverflow.com/questions/9912642/max-recommended-size-of-external-json-object-in-javascript имеет 20 МБ JSON строка анализируется. Вы уверены, что ваш объект JSON правильно сформирован? – DGS

ответ

2

Я обработал большие массивы с помощью jquery.

Мое первое предположение, что в вашем json есть ошибка.

У вас есть много способов его найти (возвышенный текст может выделить ошибку, но некоторое время, это немного длиннее). Попробуйте вставить его в веб-инструмент, например http://www.jsoneditoronline.org/. и использовать любую из кнопок (для форматирования или для отправки в нужном виде). Он скажет вам, где ошибка.

+0

Это хороший инструмент, он на самом деле разбирал json правильно! Если я попробую прямо на jsonlint, он замерзает. Это кажется мне немного странным. – caiocpricci2

+0

вы можете показать нам json? Если линт замерзнет, ​​есть проблема с ним :) – fabien

+0

К сожалению, я не могу. НД. Люби их! Но я выяснил эту проблему. В одном из узлов был странный символ «пустого пространства». По какой-то причине он был правильно проанализирован на C#, но не на javascript. .net отметил это, когда я использовал другой парсер! Отличный онлайн-инструмент кстати! Спасибо, что поделились этим! – caiocpricci2

Смежные вопросы