2010-08-25 85 views

回答

72

從iOS5開始,JSON得到本機支持,不需要第三方框架。 這由NSJSONSerialization Class支持!

+1

你會推薦使用本機類或JSONKit - 我聽說過爲什麼你會使用非本地類的性能原因,並會喜歡根據這個:Dough根據一些反饋 – Doug 2012-04-29 03:45:46

+0

:http://www.bonto.ch/ blog/2011/12/08/json-libraries-for-ios-comparison-updated/JSONKit速度更快,但是除非你使用大量的JSON,否則我認爲它不會有太大的改變。 – ThomasW 2012-05-28 02:24:16

+0

NSJSONSerialization僅在iOS 5中有一個錯誤(我從來沒有在6中找到它),並且有時會在完全有效的JSON上拋出一個錯誤。錯誤說錯誤域= NSCocoaErrorDomain代碼= 3840「該操作無法完成。(可可錯誤3840.)」(重複字符126周圍的對象的關鍵)。我不知道什麼完全導致錯誤,因爲我可以永遠不會重現它。 – LightningStryk 2013-06-11 21:12:37

36

更新答案爲iOS 5:

JSON支持現在原生的iOS與NSJSONSerialization,但在性能方面,它比較相形見絀到JSONKit,如約翰·恩格爾哈特在JSONKit自述指出:

更新:(2012/01/21)的下面的基準進行了蘋果NSJSONSerialization可用之前進行(如Mac OS X的10.7和iOS 5)。顯而易見的問題是:哪個更快,NSJSONSerialization或JSONKit?根據這個網站,JSONKit比NSJSONSerialization更快。使用所報告的數字進行一些快速的「信封」計算,JSONKit似乎比NSJSONSerialization快大約25%到40%,這非常顯着。

enter image description here

這裏有一個博客帖子裏面深入到更具體的指標:JSON Libraries for iOS Comparison

+10

對於通過Google或其他類似來源找到此問題的任何人:boz的答案將取代此項。 JSON支持現在是iOS的原生支持。 – Tommy 2011-11-14 15:58:02

+0

對於任何希望將JSONKit與您的應用程序一起使用,並使用基於iOS的引用計數的垃圾回收的用戶來說,這裏的運氣並不好(換句話說,JSONKit文檔沒有提及JSONKit在與ARC應用程序未定義)。但是,如果你使用的是ARC,你可能不會太在乎內存和性能:-) – umassthrower 2012-05-05 02:26:12

+2

@umassthrower我相信你知道'-fno-objc-arc'標誌...... – 2012-06-19 03:48:43

0

關於JSONKit基準測試,對於目前和iOS版本來說並不是那麼快。創建測試應用程序後,測試速度爲NSJSONSerialization更快但速度不如定製實施OKJSONParser