NSObject没有一个名为Key error的成员

我需要以如下所示的格式构造一个JSON对象。

{ "DeviceCredentials": { "UniqueId": "sample string 1" }, "Handovers": [ { "Occasions": [ { "Id": 1 }, { "Id": 1 } ] } ] } 

虽然有Occasions数组虽然有一个问题。 Occasion对象的数量有所不同。 有时可能只有一个场合,有时会有多个。 由于这是dynamic的,我写了下面的方法来创build这个数组。

 func getOccasionArray(handover: Handover) -> JSON { var occArray = [[String: NSNumber]]() for occ in handover.occasions { let occasion = occ as Occasion var obj = ["Id": occasion.id!] occArray.append(obj) } let json = JSON(occArray) return json } 

我使用SwiftyJSON库将创build的数组转换为JSON。 这里是jsonvariables的返回结果,它看起来像只有一个Occasion的Handover。

 [ { "Id" : 243468 } ] 

到现在为止还挺好。 问题是我有麻烦插入这个更大的JSON响应。 简单地调用这样的方法给出错误'NSObject'没有一个名为'Key'的成员

 var parameters = [String: NSObject]() parameters = [ "DeviceCredentials": [ "UniqueId": "1212121212" ], "Handovers": [ [ "Occasions": getOccasionArray(handover) ] ] ] 

我试着将返回值转换为数组getOccasionArray(handover).arrayValue但没有改变。

任何想法如何解决这个问题?

谢谢。

那么你在这里不需要SwiftyJSON:

让你的'getOc​​casionArray'返回一个[String:NSObject]

 func getOccasionArray(handover: Handover) -> [String: NSObject] { var occArray = [[String: NSNumber]]() for occ in handover.occasions { let occasion = occ as Occasion var obj = ["Id": occasion.id!] occArray.append(obj) } return occArray } 

将参数定义为[String:NSObject]:

 var parameters = [[String: NSObject]]() var json: [String: NSObject] = getOccasionArray(handover) parameters = [["DeviceCredentials": ["UniqueId": "1212121212"], "Handovers": ["Occasions": json]]]