Json 无法强制转换类型为';斯威夫特词典<;Swift.String,协议<&燃气轮机&燃气轮机';至';Swift.AnyObject';

Json 无法强制转换类型为';斯威夫特词典<;Swift.String,协议<&燃气轮机&燃气轮机';至';Swift.AnyObject';,json,swift,dictionary,swift2,Json,Swift,Dictionary,Swift2,我正在尝试将我的[String:Any]转换为JSON格式,然后再将其发送到API var orderRequestUserValues : [String : Any] = [ "ClientID": "\(clientID)", "UserName": "\(userName)",

我正在尝试将我的
[String:Any]
转换为JSON格式,然后再将其发送到API

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”


我必须使用另一种转换为JSON格式的方法,或者我最好的选择。

[String:Any]
(也称为
字典
)是一个结构,而不是一个对象。因此,它不能强制转换为
任何对象

但是,
Dictionary
(明确地)通过强制转换桥接到
NSDictionary

 let newDict = try NSJSONSerialization.dataWithJSONObject(orderRequestUserValues as NSDictionary, options: NSJSONWritingOptions.PrettyPrinted)

您正在使用Swift 2,您遇到的问题是
Any
无法转换为
AnyObject
。无法从
Any
向下转换到
AnyObject
。因此,将字典声明为
[String:AnyObject]
,而不是
[String:Any]

var orderRequestUserValues : [String : AnyObject]   = [ "ClientID": "\(clientID)",
                                                   "UserName": "\(userName)",
                                                   "Password": "\(password)",
                                                   "ModuleID": "StockProcessing",
                                                   "FunctionID": "SetStockOrder",
                                                   "TransmissionFlags": 32,
                                                   "TransmissionMethod": 5]

在Swift 3中,这种方式对我来说非常有效


让mutableDict=NSMutableDictionary(dictionary:newDictionaryResult!)

我的最佳选择是什么?无法将“[String:Any]”类型的值转换为强制操作中的“dictionary”,我输入了一个错误。我的意思是把它写成字典。根据前面的一句话,你本可以学习它:首先必须将[String:Any]更改为[String:AnyObject]才能工作!!!!!!!但是有一个警告是“从“[String:AnyHashable]”到“NSDictionary”的条件转换总是成功的”(p as?NSDictionary)!其中p是[String:AnyHashable]是的,它是(:只是在读取JSON@LenxvanZyl为此,您可以在上发布另一个问题。:)
var orderRequestUserValues : [String : AnyObject]   = [ "ClientID": "\(clientID)",
                                                   "UserName": "\(userName)",
                                                   "Password": "\(password)",
                                                   "ModuleID": "StockProcessing",
                                                   "FunctionID": "SetStockOrder",
                                                   "TransmissionFlags": 32,
                                                   "TransmissionMethod": 5]