如何解码具有多个级别的JSON并存储它的数据?

时间:2017-12-28 16:32:31

标签: json swift algorithm api

我试图将数学算法编码为包含在应用中。

我从API中获取数据,返回许多"级别",我需要14个。我还需要存储每个"级别"使用它们的值(我也需要尽可能频繁地更新它们,但我认为这将是另一个线程)。

以下是JSON的开头:

JSON Sample Screenshot

链接:https://min-api.cryptocompare.com/data/histominute?fsym=BTC&tsym=USD&limit=60&aggregate=3&e=CCCAGG

以下是我试图获取" 0" level(Array?)数据没有成功:

struct Root : Decodable {
    private enum CodingKeys : String, CodingKey { case data = "Data" }      
    let data : Data
}

struct Data : Decodable {
    private enum CodingKeys : String, CodingKey { case zero = "0" }
    let zero : Zero
}

struct Zero : Decodable {

    private enum CodingKeys : String, CodingKey {
        case time
        case open
        case high
        case low
        case close
    }
    let time : Double
    let open : Double
    let high : Double
    let low : Double
    let close : Double
}

和...

let marketData0 = try? JSONDecoder().decode(Root.self, from: data)

如何从0到13"级别"中获取数据?并存储它们以便在我的计算中使用它们?

1 个答案:

答案 0 :(得分:0)

select your fields
from your tables

join (select patientId, min(the date field you want) minDate
from your tables
where whatever
group by patientId) minDates 

on minDates.patientId = sometable.patientId
and the date field you want = minDate

etc