Swift 4 декодирование удваивается от JSON - PullRequest
0 голосов
/ 31 августа 2018

Я думал, что у меня есть эта концепция!

Я отправляю JSON, который содержит двойное число.

{"elementName":"Security:Driver","element_Cost":"650"}

Я создал CodingKeys и расширение декодера, но я все еще получаю ошибку несоответствия типов при отправке данных.

struct ElementCosts: Content {
    let elementName: String
    let elementCost: Double

    enum CodingKeys: String, CodingKey {

        case elementCost = "element_Cost"
        case elementName
    }
}

extension ElementCosts: Decodable {

    public init(from decoder: Decoder) throws {
        let values = try decoder.container(keyedBy: CodingKeys.self)
        elementCost = try values.decode(Double.self, forKey: .elementCost)
        elementName = try values.decode(String.self, forKey: .elementName)
    }
}

Глядя на некоторые другие посты здесь, я не вижу, что я сделал неправильно.

Я пытался изменить тип данных на Int, но проблема все еще та же.

Есть идеи?

1 Ответ

0 голосов
/ 31 августа 2018

"650" - это строка, а не число.

Вы можете разобрать это так

let elementCostString = try values.decode(String.self, forKey: .elementCost)
elementConst = Double(elementCostString) ?? 0

Или измените его на String для вашей модели, в зависимости от того, что лучше для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...