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将使用反射设置字段。 –