将 swift 数组转换为对象以进行 json 序列化
Posted
技术标签:
【中文标题】将 swift 数组转换为对象以进行 json 序列化【英文标题】:Converting swift array into object for json serialization 【发布时间】:2015-10-09 16:00:48 【问题描述】:以下代码在 Swift 2.0 中无法编译
var eventsIds : [CalendarEventLink?] = [CalendarEventLink?](count: 5, repeatedValue: nil)
var data = try NSJSONSerialization.dataWithJSONObject(eventsIds, options: [])
我收到错误:
'[CalendarEventLink?]' 不能转换为'[AnyObject]'
如何快速将数组序列化为 json?
【问题讨论】:
[CalendarEventLink?](count: 5, repeatedValue: nil)
创建一个 5 x nil
: [nil, nil, nil, nil, nil]
的数组,但您不能将 nil
编码为 JSON。
您必须能够解包它才能使其可序列化。您可以使用if...let
尝试它,以确定它是否不是可选的。
所以基本上,你说swift数组的元素必须不是可选的才能用作json对象?
【参考方案1】:
var eventsIds : [CalendarEventLink] = []
var data = try NSJSONSerialization.dataWithJSONObject(eventsIds, options: [])
如上面的 cmets 所述,您不能将可选项数组发送到 [AnyObject]
【讨论】:
以上是关于将 swift 数组转换为对象以进行 json 序列化的主要内容,如果未能解决你的问题,请参考以下文章
Swifty JSON:将 JSON 数组中的对象分层列表转换为分层 Swift 对象