23
我決定是否使用Moshi by square或Gson序列化和反序列化模型數據。Moshi vs Gson in android
我總是不喜歡關於Gson的一件事是我認爲它使用可以在Android上慢的反射? Moshi也使用反射嗎?
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正在使用的註釋。我正在尋找如果我切換到Moshi是否有任何性能增益。
是否使用反射 – j2emanue
@ j2emanue作爲實現細節,您的自定義類的默認JsonAdapters將使用反射設置字段。 –