Это мой массив, в котором я пытаюсь получить доступ к видеоидентификатору внутри идентификатора, но не могу получить какой-либо вложенный объект после идентификатора. Как я могу получить вложенный объект внутри этого json

 "items": [
        {
          "kind": "youtube#searchResult",
          "etag": "nbjIRj0V6P8db9BnvCTC0aBektc",
          "id": {
            "kind": "youtube#video",
            "videoId": "ByTQuYms2Sk"
          },
          "snippet": {
            "publishedAt": "2021-03-01T15:05:57Z",
            "channelId": "UCHWfAuT1j7bTLXTIBcY_l6w",
            "title": "[TOP 100] MOST VIEWED K-POP SONGS OF ALL TIME • MARCH 2021",
            "description": "Welcome back to the Top 100 Most Viewed #KPOP Songs of All Time! We have been updating you on views for over 6 years now!",
            "thumbnails": {
              "default": {
                "url": "https://i.ytimg.com/vi/ByTQuYms2Sk/default.jpg",
                "width": 120,
                "height": 90
              },
              "medium": {
                "url": "https://i.ytimg.com/vi/ByTQuYms2Sk/mqdefault.jpg",
                "width": 320,
                "height": 180
              },
              "high": {
                "url": "https://i.ytimg.com/vi/ByTQuYms2Sk/hqdefault.jpg",
                "width": 480,
                "height": 360
              }
            },
            "channelTitle": "K-Ville Entertainment",
            "liveBroadcastContent": "none",
            "publishTime": "2021-03-01T15:05:57Z"
          }
        }

I'm trying to access nested json object id and videoId inside json tree. This is what I've tried so far


response ->
                try {
                    val jsonArray = response.getJSONArray("items")
                    for (i in 1..jsonArray.length()) {
                        val jsonObject = jsonArray.getJSONObject(i)
                        val id = jsonObject.getString("id")
                        Log.i(TAG, "parseJson: $id")
                    }
                } catch (e: Exception) {
                    Log.i(TAG, "parseJson: ${e.message}")
                }
            }

Но он не нацелен на видеоидентификатор внутри идентификатора. Пожалуйста, помогите мне, как я могу достичь этого

-1
Muhammad Sajid 26 Янв 2022 в 15:10
Это похоже на очень ручной процесс, почему вы не анализируете этот ответ чем-то вроде gson ? много помощи и статей в Интернете для этого
 – 
a_local_nobody
26 Янв 2022 в 15:20

1 ответ

Лучший ответ
response ->
            try {
                val jsonArray = response.getJSONArray("items")
                for (i in 1..jsonArray.length()) {
                    val jsonObject = jsonArray.getJSONObject(i)
                    // TRY THIS
                    val id = jsonObject.getJSONObject("id").getString("videoId")
                    Log.i(TAG, "parseJson: $id")
                }
            } catch (e: Exception) {
                Log.i(TAG, "parseJson: ${e.message}")
            }
        }
0
Phil 26 Янв 2022 в 15:22