2010-08-25 24 views

Respuesta

72

A partir de iOS5 JSON se admite de forma nativa, sin necesidad de marcos de terceros. Esto es compatible con el NSJSONSerialization Class!

+1

¿Recomendaría utilizar las clases nativas o JSONKit? He escuchado los motivos de rendimiento de por qué usaría las clases no nativas, y me gustaría recibir algunos comentarios – Doug

+0

@Doug de acuerdo con esto: http://www.bonto.ch/ blog/2011/12/08/json-libraries-for-ios-comparison-updated/JSONKit es más rápido, pero a menos que trabaje con una gran cantidad de JSON, no creo que vaya a marcar una gran diferencia. – ThomasW

+0

NSJSONSerialization tiene un error en iOS 5 solamente (nunca lo encontré en 6) y algunas veces arroja un error en JSON perfectamente válido. El error dice Error Domain = NSCocoaErrorDomain Code = 3840 "La operación no se pudo completar. (Cocoa error 3840.)" (Duplicar clave para el objeto alrededor del carácter 126). No sé qué causa el error, ya que puedo No siempre lo reproduzco. – LightningStryk

36

respuesta Actualización para iOS 5: apoyo

JSON es ahora nativa de iOS con NSJSONSerialization, pero en términos de rendimiento, palidece en comparación a JSONKit, como John Englehart afirma en el JSONKit README:

ACTUALIZACIÓN: (2011/12/18) los puntos de referencia más adelante se realizaron antes Manzanas NSJSONSerialization estaba disponible (a partir de Mac OS X 10.7 y el iOS 5). La pregunta obvia es: ¿Cuál es más rápido, NSJSONSerialization o JSONKit? Según este sitio, JSONKit es más rápido que NSJSONSerialization. Algunos cálculos rápidos de "respaldo del sobre" usando los números reportados, JSONKit parece ser aproximadamente de 25% a 40% más rápido que NSJSONSerialization, que es bastante significativo.

enter image description here

Aquí es un blog, que se adentra en los puntos de referencia más específicos: JSON Libraries for iOS Comparison

+10

Para cualquier persona que encuentre esta pregunta a través de Google u otra fuente similar: la respuesta de boz a continuación reemplaza a esta. El soporte de JSON ahora es nativo de iOS. – Tommy

+0

Para cualquiera que desee utilizar JSONKit con su aplicación que utiliza la recolección de basura basada en el conteo de referencias de iOS, no tiene suerte aquí (en otras palabras, la documentación de JSONKit hace todo lo posible por mencionar el comportamiento de JSONKit cuando se usa con La aplicación ARC no está definida). Pero, si estás usando ARC, probablemente no te preocupes demasiado por la memoria y el rendimiento de todos modos :-) – umassthrower

+2

@umassthrower Estoy seguro de que conoces el indicador '-fno-objc-arc' ... –

0

Con respecto a JSONKit puntos de referencia, para el momento actual y la versión de iOS no es tan rápido. Después de crear la aplicación de prueba para la velocidad de prueba NSJSONSerialization es más rápido pero no tan rápido como la implementación personalizada OKJSONParser

Cuestiones relacionadas