我有一个像这样的字典
let dict: [String : Any] = ["2019-04-23 22:00:00": ["2. high": 0.9535, "1. open": 0.9532, "4. close": 0.9529, "3. low": 0.9517]]
如何将值转换为[String : Double]
?
这是我的问题所带来的JSON问题:{“ Time Series FX(5min)”:{“ 2019-04-23 23:40:00”:{“ 1. open”:“ 1.1223”,“ 2。高”:“ 1.1223”,“ 3。低”:“ 1.1222”,“ 4。收盘”:“ 1.1223”}}}
答案 0 :(得分:0)
我认为如果您使用这样的演员表:
let result: [String : [String: Double]]? = dict as? [String : [String: Double]]
但是,如果您不确定dict的值类型,但是需要找到符合条件的值,则可以使用以下功能:
@inlinable public func compactMap<ElementOfResult>(_ transform: (Value) throws -> ElementOfResult?) rethrows -> [ElementOfResult]
像这样:
let map = dict.values.compactMap { (value) -> [String : Double]? in
guard let valueMap = value as? [String: Any] else { return nil }
let filterResult = valueMap.filter { $0.value is Double }
return filterResult as? [String : Double]
}