我尝试在将[String : Any]
发送到API之前将其转换为JSON格式。
var orderRequestUserValues : [String : Any] = [ "ClientID": "\(clientID)",
"UserName": "\(userName)",
"Password": "\(password)",
"ModuleID": "StockProcessing",
"FunctionID": "SetStockOrder",
"TransmissionFlags": 32,
"TransmissionMethod": 5
]
var requestParameters : [String : Any] = [ "ActivityType": 2,
"ActivityReference1": "",
"ActivityReference2": "",
"Notes": "",
"ProcessingUserUnique": 1
]
requestParameters.updateValue(usedObjectDictionaries, forKey: "ListofStockActivityData")
orderRequestUserValues.updateValue(requestParameters, forKey: "RequestParameters")
但是,因为我的转换方法需要AnyObject
,所以我尝试强制转换它,但是收到一个错误:
无法将类型“Swift.Dictionary〉”的值强制转换为“Swift.AnyObject”。
do{
let newDict = try NSJSONSerialization.dataWithJSONObject(orderRequestUserValues as! AnyObject, options: NSJSONWritingOptions.PrettyPrinted) // Inflicts an error
let decoded = try NSJSONSerialization.JSONObjectWithData(newDict, options: [])
我必须使用另一种转换为JSON格式的方法吗?或者什么是我的最佳替代方法?
3条答案
按热度按时间k10s72fa1#
您正在使用Swift 2,您遇到的问题是
Any
无法转换为AnyObject
。从Any
向下转换为AnyObject
是不可能的。因此,请将您的字典声明为[String: AnyObject]
,而不是[String: Any]
。dohp0rv52#
[String : Any]
(a.k.a.Dictionary<String, Any>
)是一个结构体,而不是对象。因此,它不能被强制转换为AnyObject
。但是,
Dictionary
(显式)通过强制转换桥接到NSDictionary
:ugmeyewa3#
在Swift 3中,这种方式对我来说非常好。
令可变字典= NSMutableDictionary(字典:新词典结果!)