Как разместить массив объектов без ключа в Alamofire с помощью Struct Encodable, iOS, Swift - PullRequest
1 голос
/ 27 марта 2020

Я хочу опубликовать следующее тело через Alamofire. это точное почтовое тело. Я проверил это с почтальоном

[
   {
      "keyone":{
         "name":"abc",
         "value":"1"
      },
      "keytwo":{
         "age":"23",
         "id":"9812fvereaere112"
      },
      "keythree":{
         "expired":true,
         "freshuser":false
      },
      "keyfour":{
         "license":true
      }
   }
]

Я создал Struct для этого.

// MARK: - Keyfour
struct Keyfour: Codable {
    let license: Bool
}

// MARK: - Keyone
struct Keyone: Codable {
    let name, value: String
}

// MARK: - Keythree
struct Keythree: Codable {
    let expired, freshuser: Bool
}

// MARK: - Keytwo
struct Keytwo: Codable {
    let age, id: String
}

И затем я создал массив из этих объектов и попытался использовать его в качестве параметра Alamofire.but Alamofire требует [String: Any], но я должен отправить [Dictionary<String, Any>]. как я могу это сделать.

Я попытался преобразовать мой массив объектов в словарь, но он не работает с методом ниже

 private func convertdocprocesstoDictonary(jsonstring: String) -> Dictionary<String, Any>? {
        if let data = jsonstring.data(using: .utf8) {
            do {
                return try JSONSerialization.jsonObject(with: data, options: []) as? Dictionary<String, Any>
            } catch let jsonerr {
                print("\(jsonerr.localizedDescription)")
            }
        }
        return nil
    }

// Tried this with [Dictionary<String, Any>] as well.it fails too


let jdat = try JSONEncoder().encode(Array_of_Objects)
let jstring = String(data: jdat, encoding: .utf8)
let dic = convertdocprocesstoDictonary(jsonstring: jstring) 

, а затем прикрепил di c в качестве параметров. ничего не получилось. надеюсь, что ваша помощь с этим. хорошего дня и будь в безопасности.

...