2016-02-07 32 views
0

我在Swift for iOS中编写了一个小应用程序,它调用API的运行状况检查服务,并在屏幕上显示其结果。返回的结果位于我通过SwiftyJSON包转换为JSON的NSArray中。这是JSON的结构:在Swift中以较简洁的方式访问JSON密钥

{ 
    "clientClockOK" : true, 
    "securityTokenOK" : true, 
    "memcacheOK" : true, 
    "databaseOK" : true 
} 

当我将健康检查打印到屏幕上时,例如clientClockOK,而不是硬编码的健康检查属性的标题中的UILabel,我下面拿到钥匙:

private func getHealthCheckCriteria(apiDataJson: JSON) -> NSMutableArray 
{ 
    let healthCheckCriteria: NSMutableArray = NSMutableArray() 

    for (apiCheck, _) in apiDataJson 
    { 
     healthCheckCriteria.addObject(apiCheck as String) 
    } 

    return healthCheckCriteria 
} 

有没有更合适的方法来拿到钥匙?

回答

1

这是不知道到底是什么的apiDataJson类型是:

let healthCheckCriteria : [String] = apiDataJson.map { $0.0 as String } 
+0

嘿加里,apiDataJson是JSON类型。这是由SwiftyJSON cocoapods包提供的一种类型 –

+0

我只看了一下SwiftyJSON,而'JSON'实现了'SequenceType'协议,它有一个'map'方法,所以我写的代码应该可以工作。 –

+0

感谢堆,上面的代码诀窍:) –

相关问题