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
NSJSONReadingMutableContainers
is supported by JSONKit only.NSJSONReadingMutableLeaves
is not supported (it doesn't even work withNSJSONSerialization
on iOS 5+).NSJSONReadingAllowFragments
is not supported but NextiveJSON always allows fragments.
NSJSONWritingPrettyPrinted
is supported by JSONKit, yajl_json, and SBJSON.
The following methods are currently not supported by AnyJSON, and throw an AnyJSONUnimplementedException
exception.
+ (id)JSONObjectWithStream:(NSInputStream *)stream options:(NSJSONReadingOptions)opt error:(NSError **)error
+ (NSInteger)writeJSONObject:(id)obj toStream:(NSOutputStream *)stream options:(NSJSONWritingOptions)opt error:(NSError **)error
+ (BOOL)isValidJSONObject:(id)obj
Cédric Luthi
Mattt Thompson
AnyJSON is available under the MIT license. See the LICENSE file for more info.