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。 这里是json
variables的返回结果,它看起来像只有一个Occasion的Handover。
[ { "Id" : 243468 } ]
到现在为止还挺好。 问题是我有麻烦插入这个更大的JSON响应。 简单地调用这样的方法给出错误'NSObject'没有一个名为'Key'的成员 。
var parameters = [String: NSObject]() parameters = [ "DeviceCredentials": [ "UniqueId": "1212121212" ], "Handovers": [ [ "Occasions": getOccasionArray(handover) ] ] ]
我试着将返回值转换为数组getOccasionArray(handover).arrayValue
但没有改变。
任何想法如何解决这个问题?
谢谢。
那么你在这里不需要SwiftyJSON:
让你的'getOccasionArray'返回一个[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]]]