Ich entscheide mich, ob ich Moshi by Square oder Gson zum Serialisieren und Deserialisieren von Modelldaten verwenden soll.
Eine Sache, die ich an Gson immer nicht mochte, ist, dass ich denke, dass es Reflexionen verwendet, die auf Android langsam sein können. Verwendet Moshi auch Reflexion?
Was sind einige der Vor- und Nachteile von Moshi gegen Gson?
Ich sehe sie als ähnlich. Nehmen Sie zum Beispiel diese Anweisung, die eine erstellttypeAdapter:
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);
}
}
}
und um es zu benutzen, registriere es genau wie in gson:
Moshi moshi = new Moshi.Builder()
.add(new CardAdapter())
.build();
Ich denke, die Vorteile wären die Annotation, die im typeAdapter verwendet wird. Ich möchte herausfinden, ob es Leistungssteigerungen gibt, wenn ich zu Moshi wechsle.