我将逐层进入JSON对象以获取所需的变量。我已经成功访问了项目前几部分中的变量,但是使用完全相同的方法将不允许我访问此特定变量。
我目前已深入约4层,并成功获取了与变量“ defaultsolo”相等的以下数据:
["placetop10": 2512, "minutesplayed": 4249, "lastmodified": 1556152357, "playersoutlived": 28024, "matchesplayed": 5552, "score": 140716, "kills": 39521, "placetop1": 1829, "placetop25": 3050]
以下代码是我尝试访问变量“ minutesplayed”。 defaultsolo的类型为[String:Any],播放的分钟数表明它的类型为String。我的问题是,它一直说defaultSolo [“ minutesplayed”]等于“ nil”,但确实有一个值,如上所示。因此,它永远不会进入下面的逻辑。
if let soloPCResult = defaultSolo["minutesplayed"] as? String {
//perform logic here with saved variable
}
答案 0 :(得分:1)
两个简单的JSON规则:
String
,甚至是"123"
和"false"
Double
,其他为Int
根据规则-没有双引号和小数位-是
if let soloPCResult = defaultSolo["minutesplayed"] as? Int {
//perform logic here with saved variable
}
答案 1 :(得分:0)
我认为这是一个Int类型
您尝试将此字段设置为Int吗?
if let soloPCResult = defaultSolo["minutesplayed"] as? Int {
答案 2 :(得分:0)
minutesplayed
不是字符串。试试:
if let soloPCResult = defaultSolo["minutesplayed"] as? Int {
//perform logic here with saved variable
}
答案 3 :(得分:0)
您的minutesplayed
看起来像是Int
,您应该这样做
if let soloPCResult = defaultSolo["minutesplayed"] as? Int {
//perform logic here with saved variable
}
答案 4 :(得分:0)
也许是因为“分钟播放”是Int
而不是String