在上图中,货币代码位于红色框中,其旁边的双精度值是其汇率。因此,要为其创建模型类,您需要将字符串映射定义为键,并双精度值表示货币代码及其汇率。

@SerializedName("rates") 
val rates: Map<String, Double>,

货币代码 = > 键(字符串)
货币汇率 = >值(双倍)

要在适配器中访问它们,必须定义对变量

val currentRate: Pair<String, Double> = getItem(position)
val currencyCode = currentRate.first    // code
val currencyRate = currentRate.second   // rate

此映射的每个项目都是一对字符串键和双精度值。因此,您可以将所有项目作为列表或集获取,并将它们发送到适配器并显示它们。

其次,解析 JSON 嵌套键及其值

如果您的值是另一个对象,并且您希望其中的键和值,则应创建字符串映射作为键,另一个映射作为值。这意味着您需要获取嵌套键,并且应该创建一个字符串映射作为键,另一个映射作为值。

因此,要为其创建模型类,我们将字符串的 Map 定义为键,将另一个映射定义为值。

@SerializedName("rates") 
val rates: Map<String, Map<String, Double>>,

键(字符串)= > 日期
值(另一个地图)
货币代码 = >键(字符串)
货币汇率 = >值(双倍)

要在活动中访问它们,您需要观察数据并获取它。

val response = data.rates