Tôi đang quyết định sử dụng Moshi by square hay Gson để tuần tự hóa và giải mã hóa dữ liệu mô hình.
một điều tôi luôn không thích về Gson là tôi nghĩ nó sử dụng phản chiếu có thể chậm trên Android? Moshi cũng sử dụng phản xạ?
Một số ưu và nhược điểm của moshi vs Gson là gì?
Tôi thấy chúng giống nhau. lấy ví dụ câu lệnh này tạo ra mộttypeAdapter:
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);
}
}
}
và để sử dụng nó, hãy đăng ký nó giống như trong gson:
Moshi moshi = new Moshi.Builder()
.add(new CardAdapter())
.build();
Tôi đoán lợi ích sẽ là chú thích được sử dụng trong typeAdapter. Tôi đang tìm hiểu xem có tăng hiệu suất gì không nếu tôi chuyển sang Moshi.