如何在Swift中创建嵌套的[String:Anyobject]?

时间:2018-11-27 14:31:06

标签: json swift4 alamofire nsdictionary

我通过以下方式创建嵌套的[String: AnyObject]

let info = ["para1": test(String) as AnyObject,
            "para2": test(String) as AnyObject]

let paramater = ["para_info": info([String: AnyObject]) as AnyObject,
                    "product_id": test(String) as AnyObject,
                    "amount": test(String) as AnyObject]

使用参数,其中 info 是嵌套的[String: AnyObject],但作为 POST 请求的以下请求方式正在处理作为带有嵌套字典的数组

try JSONEncoding.default.encode(urlRequest, withJSONObject: parameters)

那么,我是否正确创建嵌套的[String: AnyObject]

1 个答案:

答案 0 :(得分:0)

由于您明确希望它为[String:AnyObject]:

  var dict: [String:AnyObject] = ["messageCode":"API_200" as AnyObject,
                                "data": ["activities": [["action":1,
                                                         "state":1]],
                                         "messages": [["body":"hi"]]] as AnyObject,
                                "message": "" as AnyObject]

基本上所有根值都应类型转换为AnyObject

或者很长的路要走

   //Activities is as Array of dictionary with Int values
var activities = [[String:Int]]()
activities.append(["action": 1,
                   "state": 1])

//Messages is an Array of string
var messages = [[String:String]]()
messages.append(["body" : "hi"])

//Data is dictionary containing activities and messages
var data = [String:Any]()
data["activities"] = activities
data["messages"] = messages

//Finally your base dictionary
var dict = [String:AnyObject]()
dict["messageCode"] = "API_200" as AnyObject
dict["data"] = data as AnyObject
dict["message"] = "" as AnyObject
print(dict)