ted*_*777 6 serialization json objective-c ios
SO上有很多问题和答案,我们如何在目标c中将对象序列化.
以上链接中都提到了以下3种方法.
1)用于NSJSONSerialization将对象序列化为JSON.看起来不错但这要求所讨论的对象在其顶层是数组或字典.常见的解决方案是声明循环遍历属性的自定义toDictionary或serialise方法,并设置相关的键和值.
2)符合NSCoder协议,有点像上面的方法,但似乎有一些混淆围绕这是否可以串行到JSON或只是NSData.
3)第三方图书馆.
我对于采取什么方法感到有些困惑.我想序列化为JSON,有一些相互矛盾的答案,说明你可以使用NSCoder一些人说不.我知道第三方应用程序可以工作,但我宁愿实现像选项1或2这样简单的东西.
思考?
使用1,您基本上可以NSCoder从头开始编写基于 JSON 的实现。不过,当然可行。
对于2,我相信这是可能的,因为我认为 的输出NSCoder是XML 的某种变体(尽管被压缩成二进制 blob)。但是,我不知道这是否是一个很好的方法,因为该格式是专有的,并不真正意味着可供人类编辑。JSON 中允许的内容与键和叶节点的格式之间也可能不匹配NSCoder,迫使您进行混乱的转换。
我一直在尝试做类似的事情,并且根据我的研究,我实际上建议3。使用Mantle \xe2\x80\x94之类的稳定、完善的框架,可以频繁更新 \xe2\x80\x94,您可以准确指定模型对象如何序列化为 JSON 以及如何从 JSON 反序列化。它甚至支持该NSCoder协议作为一个选项!(这是有效的解决方案1,但由第三方审查和维护。)