我是新来的Swift,我必须在iOS(iOS> = 8)项目中将对象结构序列化为JSON字符串。 所以我决定使用ObjectMapper库(我将它与Cocoapod集成)。如何在Swift和ObjectMapper中使用继承?
但我的问题是,结构如下。
ObjectA可以将子对象的列表作为存储在实例变量中的数组。 可以存储在实例数组中的对象可以是多种类型,比如说ObjectB和ObjectC。因此,在使用GSON的Java中,我将创建一个InterfaceD,并让两个类都实现它,并在ObjectA存储中创建InterfaceD类型的数组,但我无法确定如何使用Swift对象模型执行此操作,因为它导致空{}
JSON对象。
生成的JSON应该看起来像这样。
{"children":[
{"type":"ObjectB", "value1":"foo"},
{"type":"ObjectC", "value1":"bar", "value2":"baz"}
]}
,我得到
{"children":[
{},
{}
]}
会注意到有两个条目从对象A和ObjectC被序列化应该有不同的结构。
我尝试了多件事情,但每次都陷入死胡同。 我尝试使用泛型,试图使用Mappable协议作为我的数组类型,我尝试了经典类继承,但任何一个失败。
你有什么想法我可以做到这一点?
请注意,我知道我可以为每个对象添加一个序列化函数,并递归检索字符串并连接它们。但我真的想避免自己实现一个JSON序列化程序,因为我已经成功地使用了Alamofire已经在项目中使用了)。另外实现一个新的串行器很容易出错,而不是一个简单的方法来解决IMO的问题。
非常感谢。