繁体   English   中英

我应该使用NSCoder串行化为JSON吗?

[英]Should I use NSCoder to serialise to JSON?

SO上有很多问题和答案,我们如何在目标c中将对象序列化。

以上链接中都提到了以下3种方法。

1)使用NSJSONSerialization将对象序列NSJSONSerialization JSON。 看起来不错但这要求所讨论的对象在其顶层是数组或字典。 常见的解决方案是声明自定义的toDictionaryserialise方法,它循环遍历属性并设置相关的键和值。

2)符合NSCoder协议,有点像上面的方法,但似乎有一些混淆是否可以串行化为JSON或仅仅是NSData

3)第三方图书馆。

我对于采取什么方法感到有些困惑。 我想序列化为JSON,有一些相互矛盾的答案,说明你可以使用NSCoder一些人说不。 我知道第三方应用程序可以工作,但我宁愿实现像选项1或2这样简单的东西。

思考?

使用1 ,您基本上是从头开始编写基于JSON的NSCoder实现。 但是当然可行。

使用2 ,我相信它可能是可能的,因为我认为NSCoder的输出是XML的一些变体 (虽然压缩成二进制blob)。 但是,我不知道这是否是一个很好的方法,因为格式是专有的,并不是真正意味着人类可编辑。 在密钥和叶子节点方面,JSON与NSCoder格式允许的内容之间可能存在不匹配,迫使您进行混乱的转换。

我一直在尝试做类似的事情,根据我的研究,我实际建议3 使用像Mantle这样的东西 - 一个经常更新的稳定,优美的框架 - 您可以准确指定模型对象如何序列化和从JSON反序列化。 它甚至支持NSCoder协议作为选项! (这实际上是解决方案1 ,但由第三方审查和维护。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM