【发布时间】:2017-09-20 12:24:45
【问题描述】:
我正在决定是使用 Moshi by square 还是 Gson 来序列化和反序列化模型数据。
我一直不喜欢 Gson 的一件事是我认为它使用反射在 android 上可能会很慢? Moshi 是否也使用反射?
moshi 与 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,我正在寻找是否有任何性能提升。
【问题讨论】:
标签: android gson deserialization moshi