尽可能多地编码和解码 JSON
曾一度是 AFNetworking 最糟糕的部分现在已经独立为库。这是一个关于使事情正常工作的库,因为有些事情比处理数据交换格式更重要。
AnyJSON 在不支持 NSJSONSerialization
API 的平台(例如 iOS < 5 和 Mac OS X < 10.7)上实现该 API,使用以下三个第三方库中的第一个:
任何人为何都对功能有如此强烈的观点——在许多情况下,这仅占整体运行时间的微小比例——是一个谜。但有时最好不追究这个问题,而是尽可能地配合。AnyJSON 维护和平。
AnyJSON 支持以下方法。
+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error
+ (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error
NSJSONReadingMutableContainers
只由 JSONKit 支持。NSJSONReadingMutableLeaves
不支持。注意,它在 iOS 5+ 上的 NSJSONSerialization 上也不工作。NSJSONReadingAllowFragments
不支持,但 NextiveJSON 总是允许片段。NSJSONWritingPrettyPrinted
由 JSONKit、yajl_json 和 SBJSON 支持。当前 AnyJSON 不支持以下方法。它们会抛出 AnyJSONUnimplementedException
异常。
+ (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 使用 MIT 许可证。请参阅 LICENSE 文件获取更多信息。