Je suis en train de décider si je dois utiliser Moshi en carré ou Gson pour sérialiser et désérialiser les données du modèle.
Une chose que je n'ai jamais aimé à propos de Gson est qu'il utilise la réflexion, ce qui peut être lent sur Android ? Moshi utilise-t-il aussi la réflexion ?
Quels sont les avantages et les inconvénients de Moshi par rapport à Gson ?
Je les vois comme similaires. Prenez par exemple cette déclaration qui crée une typeAdapter:
class CardAdapter {
@ToJson String toJson(Card card) {
return card.rank + card.suit.name().substring(0, 1);
}
@FromJson Card fromJson(String card) {
if (card.length() != 2) throw new JsonDataException("Unknown card: " + card);
char rank = card.charAt(0);
switch (card.charAt(1)) {
case 'C': return new Card(rank, Suit.CLUBS);
case 'D': return new Card(rank, Suit.DIAMONDS);
case 'H': return new Card(rank, Suit.HEARTS);
case 'S': return new Card(rank, Suit.SPADES);
default: throw new JsonDataException("unknown suit: " + card);
}
}
}
et pour l'utiliser, enregistrez-le comme dans gson :
Moshi moshi = new Moshi.Builder()
.add(new CardAdapter())
.build();
Je suppose que l'avantage serait que l'annotation soit utilisée dans le typeAdapter. Je cherche à savoir s'il y a des gains de performance si je passe à Moshi.