Kotlin Volley Json 获取值

问题描述 投票:0回答:1

我已经为此工作了一段时间并在互联网上搜索,但我就是找不到解决方案。

我使用 volley 查询 api 并收到此响应。

{

      "Title": "Groupname",
      "requestedURL": "url",
      "responseURL": [
            "https://i.mg.xxx/p372qxd3694e1.jpg",
            "https://i.mg.xxx/qs06k8e3694e1.jpg",
            "https://i.mg.xxx/mjfzw6e3694e1.jpg"
      ]

}

Title和requestedUrl没问题

val responseName = response.getString("Title")

但是我无法从requestedURL获取数据。

我用 .getJSONArray / .getJSONObject 尝试了各种方法 - 我在互联网上找到的,但没有任何效果,也许是因为我没有正确理解它

android json kotlin android-volley
1个回答
0
投票

问题在于从responseURL 字段中提取数据,该字段是一个JSON 数组。要正确处理此问题,请按照以下步骤操作:

解决方案

以下是如何使用 Volley 从 JSON 响应中提取responseURL:

val jsonObject = JSONObject(response) // Parse the response as a JSONObject

// Get the title
val responseName = jsonObject.getString("Title")

// Get the responseURL array
val responseUrlArray = jsonObject.getJSONArray("responseURL")

// Iterate through the array to extract each URL
val urlList = mutableListOf<String>()
for (i in 0 until responseUrlArray.length()) {
    val url = responseUrlArray.getString(i) // Extract each URL as a String
    urlList.add(url)
}

// Now urlList contains all the URLs
for (url in urlList) {
    println(url) // Print or use each URL
}

解释

JSONObject 解析:将整个响应转换为 JSONObject。

val jsonObject = JSONObject(response)

将responseURL提取为JSONArray:

val responseUrlArray = jsonObject.getJSONArray("responseURL")

迭代 JSONArray:

  1. 使用循环将每个 URL 提取为字符串。
  2. 将每个 URL 添加到列表 (urlList) 中以供进一步处理。

应该可以解决问题。 谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.