Swift: преобразование свойства JSON — изменение типов данных JSON в один и тот же тип данных Swift

Я столкнулся с интересной проблемой при попытке использовать канал JSON, сгенерированный PHP / MySQL с использованием PDO. По умолчанию результат запроса, например, SELECT COUNT(id) FROM table name возвращается как String, но когда я делаю какие-либо математические вычисления на результат, например $result = $result + 1; результат — «правильный» тип данных.

В PHP это не было проблемой, но я использую JSON для отправки этих результатов в мое приложение для iOS, поэтому, хотя я знаю, какой тип данных я хочу, чтобы что-то было в iOS, я не знаю, какой это будет тип, когда это произойдет. достигает меня. Например, я хотел бы сделать:

if let json = jsonResult as? [String:Any] {
let score = jsonData["score"] as? Int ?? 0
let years = jsonData["years"] as? String
}

Но:

  1. Если score это String в формате JSON (например, score:"7"), score просто закончится как 0
  2. Если years является Integer в формате JSON (например, years:2015) годы закончатся как nil

Я понимаю, что сделать JSON правильно — лучший способ добиться этого, однако есть ли надежный способ сделать это в iOS? Ради этого вопроса предположим, что я не могу изменить JSON.

В идеале я ищу разумную однострочную строку, которая позволит мне преобразовать данные в правильный тип данных, независимо от того, какой тип был ранее (т.е. в приведенном выше примере). years станет Stringнезависимо от того, было ли это String или же Int в JSON, и оценка станет Int независимо от того, было ли это String или Int в формате JSON)?

Спасибо заранее!

0

Решение

Я думаю, что вы можете сделать что-то вроде

let score = Int(jsonData["score"] as? String)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]