一尘不染

将Objective-C对象序列化和反序列化为JSON

json

我需要将Objective-
C对象序列化和反序列化为JSON以存储在CouchDB中。人们是否有通用解决方案最佳实践的示例代码?我看了几个JSON框架,它们在NSDictionary
/ NSArray级别停止了。即,许多框架会将NSDictionary /
NSArray序列化和反序列化为JSON。但是我仍然要做将NSDictionary转换为Objective-C对象的工作。

为了使事情更复杂,我的对象A可以引用对象B的NSArray / NSDictionary。


阅读 366

收藏
2020-07-27

共1个答案

一尘不染

听起来好像您正在寻找一个序列化库,该库可以让您将自己的自定义类的对象转换为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

2020-07-27