O ile wiem, istnieją trzy parsery JSON dla Objective-C, JSON Framework , YAJL i Touch JSON . Wtedy Te trzy miałyby swoje własne cechy.
Na przykład:
YAJL może być używany jako parser w stylu SAX.
JSON Framework ma stosunkowo długą historię i jest szeroko stosowany.
Dotknij JSON analizuje NSData zamiast NSString.
Ponadto, o ile testowałem, wynik porównania wydajności jest następujący:
[szybki] YAJL> JSON Framework> Touch JSON [wolny].
Jeśli znasz zalety i wady tych parserów JSON, czy możesz mi powiedzieć?
Na koniec, jeśli znasz inny parser JSON, powiedz mi.
iphone
objective-c
json
tomute
źródło
źródło
Odpowiedzi:
Jeśli szukasz szybkości, spójrz na JSONKit . Jest (zwykle) znacznie szybszy niż wspomniane już biblioteki JSON, często o rząd wielkości szybciej. Ze względu na to, że jest to „niedawno utworzona instancja pamięci podręcznej obiektów”, będzie (znowu, zwykle) zużywać mniej pamięci.
źródło
Biorąc pod uwagę porównanie, które zrobiłem , najszybszą biblioteką jest JSONKit, następnie NSJSONSerialization (teraz publiczne API) i NextiveJSON. SBJSON i TouchJSON są nieco wolniejsze niż poprzednie 3 biblioteki.
Porównanie zostało wykonane na telefonie iPhone 4S z systemem iOS 5.0.1.
źródło
Jest też taki parser :
Nie pamiętam, jak natknąłem się na ten, ale wyglądał na lekki i prosty, więc pomyślałem, że pasuje do moich potrzeb. Zdarzenie to rozwidliło, aby dodać inicjalizację z NSData. Ponieważ potrzebowałem analizować małe odpowiedzi, nie przejmowałem się wydajnością. Byłoby jednak interesujące wiedzieć, jak to działa.
źródło
Myślę, że JSONKit jest szybszy niż YAJL, a YAJL jest szybszy niż Touch JSON, a klasa NSJSONS IOS5 jest znacznie szybsza. NSJSONSerialization nie ma potrzeby używania żadnych zewnętrznych interfejsów API.
źródło
Spójrz na ten post . <30 znaków>
źródło
Jeśli szukasz serializatora z NSObject do JSON i odwrotnie, możesz sprawdzić OBJC JSONSerializer
źródło
Dlaczego nie spojrzeć na testy porównawcze parserów firmy Akosma, w których porównuje różne rodzaje parserów. Jeśli brakuje jednego parsera, równie dobrze możesz dodać go do testów, ponieważ jego kod jest open source.
iPhoneWebServicesClient
źródło