Tanto quanto eu sei, existem três Analisadores JSON para Objective-C, JSON Framework , YAJL e Touch JSON . Então, esses três teriam suas próprias características.
Por exemplo:
YAJL pode ser usado como um analisador de estilo SAX.
O JSON Framework tem uma história relativamente longa e é amplamente utilizado.
O toque JSON analisa NSData em vez de NSString.
Além disso, tanto quanto eu testei, o resultado da comparação de desempenho é o seguinte:
[rápido] YAJL> JSON Framework> Touch JSON [lento].
Se você conhece os prós e os contras desses analisadores JSON, poderia me dizer?
Por fim, se você conhece outro Analisador JSON, informe-me.
iphone
objective-c
json
tomute
fonte
fonte
Respostas:
Se você está procurando velocidade, dê uma olhada no JSONKit . É (geralmente) muito mais rápido que as bibliotecas JSON já mencionadas, geralmente uma ordem de magnitude mais rápida. E por causa de seu "cache de objeto instanciado recentemente", ele (novamente) geralmente usa menos memória também.
fonte
Considerando uma comparação que fiz , a biblioteca mais rápida é JSONKit, seguida por NSJSONSerialization (agora API pública) e NextiveJSON. SBJSON e TouchJSON são um pouco mais lentos que as 3 bibliotecas anteriores.
A comparação foi feita usando um iPhone 4S com iOS 5.0.1.
fonte
Há também este analisador :
Não me lembro de como me deparei com essa, mas parecia leve e simples, então pensei que se adapta às minhas necessidades. Eu evento bifurcado, a fim de adicionar a inicialização do NSData. Como eu precisava analisar pequenas respostas, não me importei com o desempenho. Seria interessante saber como ele funciona.
fonte
Acho que o JSONKit é mais rápido que o YAJL e o YAJL é mais rápido que o Touch JSON e a classe IOS5 da classe NSJSONSerialization é muito mais rápida. A NSJSONSerialization não precisa usar APIs de terceiros.
fonte
Veja este post . <30 caracteres>
fonte
Se você estiver procurando por um serializador do NSObject para o JSON e vice-versa, poderá fazer o check-out do OBJC JSONSerializer
fonte
Por que não dar uma olhada nos benchmarks de akosma nos analisadores, onde ele compara diferentes tipos de analisadores. Se um analisador estiver ausente, você também poderá adicioná-lo aos testes, pois o código dele é de código aberto.
iPhoneWebServicesClient
fonte