android - value - object to json string kotlin




Kotlin: itera através de um JSONArray (3)

Estou escrevendo um aplicativo Android usando Kotlin e Realm. Eu tenho um JSONArray e quero percorrer os JSONObjects nessa matriz para carregá-los em uma classe de banco de dados do Realm:

Classe de região:

import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import io.realm.annotations.Required

open class Person(

        @PrimaryKey open var id: Long = 0,

        @Required
        open var name: String = ""

) : RealmObject() {

}

O JSONArray:

{
    "persons":[
        {
           "id":0,
           "name":"Biatrix"
        },
        {
           "id":1,
           "name":"Bill"
        },
        {
           "id":2,
           "name":"Oren"
        },
        {
           "id":3,
           "name":"Budd"
        }
    ]
}

Eu tentei iterar da seguinte maneira:

for (item : JSONObject in persons) {

}

... mas recebo um for-loop range must have an iterator() method erro de for-loop range must have an iterator() method .


E se

(0..(jsonArray.length()-1)).forEach { i ->
    var item = jsonArray.getJSONObject(i)
}

?


Infelizmente, o JsonArray não expõe um iterador. Portanto, você precisará iterá-lo usando um intervalo de índice:

for (i in 0..(persons.length() - 1)) {
    val item = persons.getJSONObject(i)

    // Your code here
}

for (i in 0 until jsonArray.length()){
    //do your stuff
    }




kotlin