JSON 代表 JavaScript 对象表示法。它是一种独立的数据交换格式,是 XML 的最佳替代方法。作为复习,JSON 文件有四个主要组件:JSON 数组、JSON 对象、键和值。通常,我们需要获取指定键的值。但密钥有时至关重要,您需要像某些货币兑换API一样获取它。在本文中,我们将通过处理两个示例来了解如何动态解析密钥。
首先,解析具有以下值的 JSON 键:
在第一个示例中,我们需要获取作为密钥的货币代码。
在上图中,货币代码位于红色框中,其旁边的双精度值是其汇率。因此,要为其创建模型类,您需要将字符串映射定义为键,并双精度值表示货币代码及其汇率。
@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
val dates = response.keys
val codes = response.values.keys
val rates= response.values.values
这是该概念的两个示例,可帮助您在高级和复杂的 API 中解析 JSON。
网友评论