在尝试使用PDO使用PHP / MySQL生成的JSON提要时,我遇到了一个有趣的问题。默认情况下,查询的结果,例如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
}
可是:
score
是JSON中的String
(例如score:"7"
),则score
最终将为0
years
是JSON中的Integer
(例如years:2015
),则年数最终将为nil
我意识到使JSON正确是实现这一目标的最佳方法,但是在iOS中有可靠的方法吗?为了这个问题,假设我无法更改JSON。
我理想地寻找一个合理的单行,这将允许我转换为正确的数据类型,无论它以前是什么类型(即在上面的示例中years
将成为{{1无论是JSON中的String
还是String
,无论是Int
还是{{1},得分都将成为Int
在JSON中)?
非常感谢提前!
答案 0 :(得分:1)
我认为你可以像
那样思考let score = Int(jsonData["score"] as? String)