iPhone, JSon и Сжатие - PullRequest
       6

iPhone, JSon и Сжатие

6 голосов
/ 20 июня 2010

Я создаю приложение для iPhone, которое будет отправлять и получать большие объемы данных на сервер и с сервера.Я использую JSon для получения данных.Мне было интересно, возможно ли также использовать какое-то сжатие на полученных данных, чтобы попытаться немного ускорить процесс.Если да, какой тип сжатия лучше всего работает с JSon, и где я могу найти дополнительную информацию об этом?

Спасибо,

Ответы [ 5 ]

2 голосов
/ 23 февраля 2011

опаздывает на вечеринку, но на всякий случай, если кто-то ищет.Используйте ASIHTTPRequest, который имеет встроенную поддержку для сжатия gzip.это сэкономит накладные расходы на обработку декомпрессии. gzip в ASIHTTPRequest

0 голосов
/ 27 октября 2014

Я думаю, что алгоритм сжатия HPack (также известный как JSONH) со сжатием gzip - это хороший вариант, если вы слишком обеспокоены размером данных.Я пытался сжимать простые данные JSON с массивом объектов, я использовал два метода сжатия -

  1. gzip
  2. JSONH + gzip

РезультатJSONH + gzip был сжат примерно на 7% больше, чем результат простого использования gzip.В моем случае это было значительное число, и я продолжил смешанную реализацию.

0 голосов
/ 30 августа 2011

Существует не менее двух алгоритмов, используемых для сжатия JSON (CJson & HPack).

Если клиентское устройство поддерживает gzip, использование JSON-сжатия не дает никаких преимуществ.При использовании обоих: сжатие gzip и сжатие json улучшение незначительно.Использование сжатия JSON имеет смысл, когда gzip отключен или не поддерживается.

0 голосов
/ 20 июня 2010

Самому JSON все равно, какой тип сжатия вы используете для своих данных, поэтому вы можете выбрать схему сжатия, которая наилучшим образом соответствует данным и обеспечивает наилучший размер / производительность.

Однако JSON ожидаетвсе данные должны быть в формате UTF-8, поэтому вам необходимо кодировать сжатые данные, например, с использованием кодировки base64.

0 голосов
/ 20 июня 2010

IPhone поддерживает ZLib. Но я думаю, что лучше, чтобы ваш сервер поддерживал сжатие, поскольку NSURLRequest принимает gzip-кодировку из ответов сервера. Поскольку JSON сериализуем, это может быть лучшим вариантом для вас.

С zlib вы можете использовать сжатие со стороны клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...