gpt4 book ai didi

android - 安卓中的 Moshi vs Gson

转载 作者:IT老高 更新时间:2023-10-28 13:25:15 29 4
gpt4 key购买 nike

我正在决定是否使用 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,我正在寻找是否有任何性能提升。

最佳答案

Moshi 使用 Okio 优化了 Gson 没有做的一些事情。

  • reading field names , Moshi 不必分配字符串或进行哈希查找。
  • Moshi 将输入扫描为 UTF-8 字节序列,并延迟转换为 Java 字符。例如,它永远不需要将整数文字转换为字符。

如果您已经在使用 Okio 流,这些优化的好处会特别明显。 Retrofit的用户和 OkHttp尤其受益于 Moshi。

关于 Moshi 起源的进一步讨论在我的帖子中,Moshi, another JSON Processor .

关于android - 安卓中的 Moshi vs Gson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43577623/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com