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