Я принимаю решение о том, следует ли использовать Moshi by square или Gson для сериализации и десериализации данных модели.
Одна вещь, которую мне всегда не нравилась в Gson, я думаю, что она использует отражение, которое может замедлить работу на Android. Моши также использует отражение?
Каковы некоторые из плюсов и минусов moshi vs Gson?
Я вижу их похожими. возьмите, например, это утверждение, которое создает 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);
}
}
}
и использовать его, зарегистрируйте его точно так же, как в gson:
Moshi moshi = new Moshi.Builder()
.add(new CardAdapter())
.build();
Я предполагаю, что преимуществами будет аннотация, используемая в typeAdapter. Я хочу узнать, есть ли какие-либо улучшения в производительности, если я переключусь на Моши.