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.