Я вирішую, чи використовувати Moshi за допомогою квадрата або Gson для серіалізації та десеріалізації даних моделі.
одна річ, яка мені завжди не подобалась у Gson, - це, на мою думку, використовує відображення, яке може бути повільним на андроїд? Чи використовує Моші рефлексію також?
Які плюси та мінуси Moshi проти Gson?
Я бачу їх подібними. візьмемо для прикладу це твердження, яке створює atypeAdapter:
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. Я хочу з’ясувати, чи є якісь підвищення продуктивності, якщо я перейду на Моші.