如何将hashmap转换为数据类并将其保存为Kotlin中的列表?

fkaflof6  于 2022-12-04  发布在  Kotlin
关注(0)|答案(1)|浏览(180)

我拉数据从网站与api和我有一个数据类。

我的数据类

@Serializable
data class ExchangeDto(
    val base_code: String,
    val conversion_rates: HashMap<String,Double>,
    val documentation: String,
    val result: String,
    val terms_of_use: String,
    val time_last_update_unix: Int,
    val time_last_update_utc: String,
    val time_next_update_unix: Int,
    val time_next_update_utc: String
) {
    fun toDomain() = Exchange(
        base_code = base_code,
        conversionRates = conversion_rates,
        result = result,

    )
}

以哈希Map形式获取转换率

但是我想把它们作为list保存在我的房间数据库中,因为我很难把它们作为散列表来处理。
此外,api中的示例数据如下所示。

{
 "result":"success",
 "documentation":"https://www.exchangerate-api.com/docs",
 "terms_of_use":"https://www.exchangerate-api.com/terms",
 "time_last_update_unix":1670025602,
 "time_last_update_utc":"Sat, 03 Dec 2022 00:00:02 +0000",
 "time_next_update_unix":1670112002,
 "time_next_update_utc":"Sun, 04 Dec 2022 00:00:02 +0000",
 "base_code":"USD",
 "conversion_rates":{
  "USD":1,
  "AED":3.6725,
  "AFN":88.0980,
  "ALL":112.4117,
  "AMD":395.2364,
  "ANG":1.7900,
  "AOA":508.8502,
  "ARS":166.8477,
  "AUD":1.4705,
  "AWG":1.7900,
  "AZN":1.6974,
  "BAM":1.8602,
  "BBD":2.0000,
  "BDT":101.2527,
  "BGN":1.8596,
  "BHD":0.3760,
  "BIF":2048.3540,
  "BMD":1.0000,
  "BND":1.3507
 }
}
uyhoqukh

uyhoqukh1#

你可以使用Kotlin的标准库将一个HashMap转换为一个数据类并保存为一个列表,你可以使用map()函数迭代HashMap并为Map中的每个条目创建一个新的数据类示例,然后将其添加到列表中,如下所示:

val listOfDataClasses = HashMap<String, String>().map {
    DataClass(it.key, it.value)
}.toList()

相关问题