모델 데이터를 직렬화 및 역 직렬화 하는 데 Moshi by square 를 사용할지 Gson을 사용할지 결정하고 있습니다 .
내가 항상 Gson에 대해 좋아하지 않았던 점은 안드로이드에서 느릴 수있는 반사를 사용한다고 생각한다는 것입니다. 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로 전환하면 성능이 향상되는지 알아 보려고합니다.