2010-06-20 12 views
6

Estoy construyendo una aplicación de iPhone que va a enviar y recibir grandes cantidades de datos hacia y desde un servidor. Estoy usando JSon para obtener los datos. Me preguntaba si también es posible usar algún tipo de compresión en los datos recibidos para intentar acelerar un poco el proceso. De ser así, ¿qué tipo de compresión funciona mejor con JSon y dónde puedo encontrar más información?iPhone, JSon y Compresión

Gracias,

Respuesta

2

tarde para la fiesta pero por si acaso alguien está buscando. Utilice ASIHTTPRequest que tiene soportes incorporados para la compresión gzip. esto ahorrará gastos generales de manejo de la descompresión. gzip at ASIHTTPRequest

0

IPhone es compatible con ZLib. Pero creo que es mejor idea que su servidor admita la compresión, ya que NSURLRequest acepta la codificación gzip a partir de las respuestas del servidor. Como JSON es serializable, esta podría ser la mejor opción para ti.

Con zlib puede usar la compresión desde el lado del cliente.

0

A JSON en realidad no le importa qué tipo de compresión utilice en sus datos para que pueda elegir el esquema de compresión que mejor se adapte a los datos y proporcione el mejor tamaño/rendimiento.

Sin embargo, JSON espera que todos los datos estén en formato UTF-8, por lo que debe codificar los datos comprimidos, p. mediante el uso de codificación base64.

0

Hay al menos dos algoritmos utilizados para JSON compression (CJson & HPack).

Si el dispositivo cliente es compatible con gzip, entonces no hay beneficio de usar compresión JSON. Al utilizar ambos: compresión gzip & compresión json, la mejora es insignificante. Usar compresión JSON tiene sentido cuando gzip está desactivado o no es compatible.

0

Creo que el algoritmo de compresión HPack (también conocido como JSONH) con compresión gzip es una buena opción si le preocupa el tamaño de los datos. Probé comprimir un simples datos JSON con matriz de objetos, que utiliza dos métodos de compresión -

  1. gzip
  2. JSONH + gzip

El resultado de JSONH + gzip fue de alrededor de 7% más de comprimido que el resultado de simplemente usar gzip. En mi caso, este fue un número significativo y seguí adelante con la implementación mixta.