JSONKit
GitHub describes it as Objective-C JSON. The repository metadata lists Objective-C as its primary language. This article stays within the project description and details documented in the GitHub repository README.
johnezang/JSONKit: JSONKit
GitHub describes it as Objective-C JSON. The repository metadata lists Objective-C as its primary language. This article stays within the project description and details documented in the GitHub repository README.
Repository scope
GitHub describes it as Objective-C JSON. The repository metadata lists Objective-C as its primary language. The README describes the project this way: JSONKit is dual licensed under either the terms of the BSD License, or alternatively under the terms of the Apache License, Version 2.0. Copyright © 2011, John Engelhart.
A Very High Performance Objective-C JSON Library
The README section "A Very High Performance Objective-C JSON Library" states: UPDATE: (2011/12/18) The benchmarks below were performed before Apples [ NSJSONSerialization ][NSJSONSerialization] was available (as of Mac OS X 10.7 and iOS 5). The obvious question is: Which is faster, [ NSJSONSerialization ][NSJSONSerialization] or JSONKit? According to this site, JSONKit is faster than [ NSJSONSerialization ][NSJSONSerialization]. Some quick "back of the envelope" calculations using the numbers reported, JSONKit appears to be approximately 25% to 40% faster than [ NSJSONSerialization ][NSJSONSerialization], which is pretty significant.
A Very High Performance Objective-C JSON Library
The README section "A Very High Performance Objective-C JSON Library" states: Parsing | Serializing :---------:|:-------------: | 23% Faster than Binary .plist  ! | 549% Faster than Binary .plist  !
A Very High Performance Objective-C JSON Library
The README section "A Very High Performance Objective-C JSON Library" states: Benchmarking was performed on a MacBook Pro with a 2.66GHz Core 2. All JSON libraries were compiled with gcc-4.2 -DNS BLOCK ASSERTIONS -O3 -arch x86 64 . Timing results are the average of 1,000 iterations of the user + system time reported by [ getrusage ][getrusage]. The JSON used was twitter public timeline.json from samsoffes / json-benchmarks. Since the .plist format does not support serializing [ NSNull ][NSNull], the null values in the original JSON were changed to "null" . The experimental branch contains the gzip compression changes. JSONKit automagically links to libz.dylib on the fly at run time– no manual linking required. Parsing / deserializing will automagically decompress a buffer if it detects a gzip signature header. You can compress / gzip the serialized JSON by passing JKSerializeOptionCompress to -JSONDataWithOptions:error: .
Editorial conclusion
The repository README is the source for this review. It does not replace a local installation or an independent test.
Community notes