val balance =
GsonBuilder()
.create()
.fromJson<ArrayList<BalanceDetail>>(
JSONArray(data)
.toString(),
object : TypeToken<List<BalanceDetail>>() {}.type
)
3 Réponses :
Vous pouvez utiliser Wrapper: et désérialiser comme ceci: p>
VAL BALANCE CODE> à la fin sera CODE> LISTE CODE> du compte code> ou juste un objet? J'ai besoin de ArrayList code>
Ce sera Liste
Mais chaque fois que je dois faire obtenir (0) .account code> pour rendre les données ou l'attribuer à un adaptateur.
Pouvons-nous désérialiser de manière à ce que nous puissions obtenir Liste recyclerview code>
Bien sûr, vous pouvez mapper vos données sur n'importe quel type que vous souhaitez, par exemple: balail.mapnotnull {it.account} code>. Une autre option serait de créer personnalisé typeeadapter code>.
À mon avis, vous devez simplement filtrer les éléments nuls avec list.filternotnull () code> fonction p>
Essayez:
val balance =
GsonBuilder()
.registerTypeHierarchyAdapter(
BalanceDetail::class.java,
object : JsonDeserializer<BalanceDetail?> {
override fun deserialize(
json: JsonElement?,
typeOfT: Type?,
context: JsonDeserializationContext?
): BalanceDetail? {
return if (json?.asJsonObject?.entrySet()?.size == 0) {
null
} else {
Gson().fromJson(json, BalanceDetail::class.java)
}
}
})
.create()
.fromJson<ArrayList<BalanceDetail>>(
JSONArray(value)
.toString(),
object : TypeToken<List<BalanceDetail>>() {}.type
)
Merci, je vais essayer sûrement.