我需要将Objective- C对象序列化和反序列化为JSON以存储在CouchDB中。人们是否有通用解决方案最佳实践的示例代码?我看了几个JSON框架,它们在NSDictionary / NSArray级别停止了。即,许多框架会将NSDictionary / NSArray序列化和反序列化为JSON。但是我仍然要做将NSDictionary转换为Objective-C对象的工作。
为了使事情更复杂,我的对象A可以引用对象B的NSArray / NSDictionary。
听起来好像您正在寻找一个序列化库,该库可以让您将自己的自定义类的对象转换为JSON,然后重新构造它们。属性列表类型(NSArray,NSNumber等)的序列化已存在于第三方库中,甚至内置于OS X 10.7和iOS 5中。
因此,我认为答案基本上是“否”。我在一两个月前在cocoa-dev邮件列表上问了这个确切的问题,而最接近我的是Mike Abdullah,他指向他写的一个实验库:
https://github.com/mikeabdullah/KSPropertyListEncoder
这会将对象存档到内存中的属性列表,但是正如我所说的,已经有将这些对象转换为JSON的API。
还有一个名为Objectify的商业应用程序,声称可以执行类似的操作:
http://tigerbears.com/objectify/
作为我的CouchCocoa库的一部分,我可能最终会实现您的要求,但我尚未深入研究该任务。
https://github.com/couchbaselabs/CouchCocoa