Reputation: 373
I have one problem wherein one request my result is an object that your properties have the same type. In this case, I need to transform this body into one list of Coins
data class Currencies(
@SerializedName("abc")
val abc: Coins,
@SerializedName("bch")
val bch: Coins,
@SerializedName("bnb")
val bnb: Coins,
@SerializedName("brl")
val brl: Coins,
@SerializedName("brzx")
val brzx: Coins,
@SerializedName("bsv")
val bsv: Coins,
@SerializedName("btc")
val btc: Coins,
@SerializedName("btg")
val btg: Coins,
@SerializedName("cfty")
val cfty: Coins,
@SerializedName("crw")
val crw: Coins,
@SerializedName("dash")
val dash: Coins,
@SerializedName("dcr")
val dcr: Coins,
@SerializedName("eos")
val eos: Coins,
@SerializedName("epc")
val epc: Coins,
@SerializedName("etc")
val etc: Coins,
@SerializedName("eth")
val eth: Coins,
@SerializedName("gmr")
val gmr: Coins,
@SerializedName("gnt")
val gnt: Coins,
@SerializedName("iop")
val iop: Coins,
@SerializedName("lcc")
val lcc: Coins,
@SerializedName("ltc")
val ltc: Coins,
@SerializedName("mxt")
val mxt: Coins,
@SerializedName("nbr")
val nbr: Coins,
@SerializedName("omg")
val omg: Coins,
@SerializedName("onix")
val onix: Coins,
@SerializedName("prsp")
val prsp: Coins,
@SerializedName("smart")
val smart: Coins,
@SerializedName("sngls")
val sngls: Coins,
@SerializedName("trx")
val trx: Coins,
@SerializedName("tusd")
val tusd: Coins,
@SerializedName("usdt")
val usdt: Coins,
@SerializedName("xmr")
val xmr: Coins,
@SerializedName("xrp")
val xrp: Coins,
@SerializedName("zec")
val zec: Coins,
@SerializedName("zrx")
val zrx: Coins
)
My response, then how I can add Coins in list of Coins ? I receive Currencies objects and want displaye in one recycler view with one mutable list of Coins
Upvotes: 1
Views: 531
Reputation: 3890
You can use reflection to process all properties (it requires kotlin-reflect
library):
data class DataClass(
val a: Int,
val b: Int,
val c: Int,
val d: Int
)
fun main() {
val instance = DataClass(1, 2, 3, 4)
val properties = instance::class.memberProperties
val allValues = ArrayList<Int>() // This list will contain all values of properties
for (property in properties) {
val propertyName = property.name
val propertyValue = property.getter.call(instance)
println("$propertyName $propertyValue")
allValues.add(propertyValue as Int)
}
}
This code prints:
a 1
b 2
c 3
d 4
Upvotes: 3