Как создать вложенный [String: Anyobject] в Swift? - PullRequest
0 голосов
/ 27 ноября 2018

Я создаю вложенный [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 голосов
/ 29 ноября 2018

Поскольку вы явно хотите использовать его как [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)
...