Encode / Decode JSON By Any Means Possible
AnyJSON implements the
NSJSONSerialization API on platforms that do not support it (i.e. iOS < 5 and Mac OS X < 10.7), using the first available of the following 3rd-party libraries:
For anyone who appreciates lower-level Objective-C hacks, you won't want to miss how AnyJSON works its magic.
The following methods are supported by AnyJSON.
+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error
+ (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error
Supported Reading Options
NSJSONReadingMutableContainersis supported by JSONKit only.
NSJSONReadingMutableLeavesis not supported (it doesn't even work with
NSJSONSerializationon iOS 5+).
NSJSONReadingAllowFragmentsis not supported but NextiveJSON always allows fragments.
Supported Writing Options
NSJSONWritingPrettyPrintedis supported by JSONKit, yajl_json, and SBJSON.
The following methods are currently not supported by AnyJSON, and throw an
+ (id)JSONObjectWithStream:(NSInputStream *)stream options:(NSJSONReadingOptions)opt error:(NSError **)error
+ (NSInteger)writeJSONObject:(id)obj toStream:(NSOutputStream *)stream options:(NSJSONWritingOptions)opt error:(NSError **)error
AnyJSON is available under the MIT license. See the LICENSE file for more info.