如何在 Android 的 Kotlin 中使用 GSON 将 JSON 对象转换为 JSON 数组

Posted

技术标签:

【中文标题】如何在 Android 的 Kotlin 中使用 GSON 将 JSON 对象转换为 JSON 数组【英文标题】:How to Convert a JSON Object to JSON Array using GSON in Kotlin in Android 【发布时间】:2021-06-18 10:28:02 【问题描述】:

您好,我是 Kotlin 和 android 的新手,我想解析 JSONObject 并将其转换为 Array , 这是我的示例 JSON 的样子


        "USDAED": 3.672982,
        "USDAFN": 57.8936,
        "USDALL": 126.1652,
        "USDAMD": 475.306,
        "USDANG": 1.78952,
        "USDAOA": 109.216875,
        "USDARS": 8.901966,
        "USDAUD": 1.269072,
        "USDAWG": 1.792375,
        "USDAZN": 1.04945,
        "USDBAM": 1.757305

我想将 JSONObject 存储在 HashMap 中。或者如何在 Kotlin 中迭代 JSON 对象键。

我正在使用 GSON。

如果容易请不要投票,请提供链接。

【问题讨论】:

你可以试试这样val jsonObject = JSONObject("your json string") val keys: Iterator<String> = jsonObject.keys() val map: HashMap<String, String> = HashMap() while (keys.hasNext()) val key = keys.next() val value = jsonObject.getString(key) map[key] = value 【参考方案1】:

我认为你可以通过简单地使用拆分对象值来做到这一点,如下所示 jsonObject.toString().split(",") 其返回的字符串列表。 如果你想迭代每个值,那么你可以使用下面的代码

  val jsonArray = jsonObject.toString().split(",")
    for (element in jsonArray)
        Log.i(TAG, "doSomeWork: $element")
    

也可以像这样转换成列表:-jsonArray.toList()

希望对你有所帮助

【讨论】:

如果json只有一个元素就不行了"USDAED": 3.672982

以上是关于如何在 Android 的 Kotlin 中使用 GSON 将 JSON 对象转换为 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Kotlin 在 Android 中使用套接字

如何使用 Kotlin 的视图绑定在 Android 中缩短此代码?

如何使用kotlin在Android的firebase中获取child的键值

如何在 Kotlin android 的改造中使用 enque 方法

做Android开发,如何使用 Kotlin 提高生产力!

做Android开发,如何使用 Kotlin 提高生产力!