ОК, чувак ... вот так ...
Ваша проблема со второй строкой:
Вы объявляете свой словарь со значением String
в качестве значения.
var requestParams = [String:String]()
API требует Int
для значения.
"option": {"2008":7403}
Я бы порекомендовал вам прекратить использование SwiftyJSON
, поскольку Codable
является "фабричным" протоколом.Вы моделируете структуру так, как вы хотите моделировать данные.В этом случае вот как выглядит ваш необработанный JSON как Codable
структура.
struct Order: Codable {
let quantity: String
let productID: String
let option: [String: Int]
}
Допустим, вы хотите создать заказ ... вот как вы это сделаете:
let order = Order(quantity: "1",
productId: "23490",
option: ["2008":7403])
Когда вы используете кодировщик, вы будете использовать его следующим образом:
let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToSnakeCase
convertToSnakeCase
преобразует ваш ключ JSON из productId
в product_id
, и ваши объявления будут следоватьСоглашение Swift о CamelCase.
Вот пост , который вам может пригодиться