请教一下 kotlin json 序列化及配合 data class 的正确姿势

2020 年 8 月 6 日
 yazinnnn

jackson 可以直接 decode jsonString 成 Any 需要自己强转成 jsonObject 或者 jsonArray 可以转成普通 class 实体,不能转成 data class

Fastjson 情况类似

网上搜了一下 jackson 需要引入 kotlin module 和大量注解配合才能使用 data class

请问有啥方便的轮子可以用么?

6805 次点击
所在节点    Kotlin
12 条回复
sospopo101343793
2020 年 8 月 6 日
使用 gson,暂时没遇到啥问题
lianyue13
2020 年 8 月 6 日
Kotlin serialization 或者 moshi
wahahaha18
2020 年 8 月 6 日
android studio 上有一个 json to kotlin class 的插件,你可以搜一搜类似插件试一试
whyrookie
2020 年 8 月 6 日
同一楼,用的 Gson,没啥问题
chendy
2020 年 8 月 6 日
jackson + kotlin module 就完事了,注解都是别的故事了
ijaysdev
2020 年 8 月 6 日
可以用 Gson 或者 Moshi,Jake Wharton 比较推荐使用 Moshi
KingOfUSA
2020 年 8 月 7 日
compile "com.fasterxml.jackson.module:jackson-module-kotlin"
lhtdege
2020 年 8 月 7 日
moshi +1
moshi 的实现比较优雅一些,速度比 Gson 快,底层使用的是 Okio
jeremaihloo
2020 年 8 月 7 日
moshi 就是为 Kotlin 而生的
bluebonnet27
2020 年 12 月 24 日
我用的 GSON,然后 data class 手打的… …
ZSpirytus
2021 年 11 月 20 日
可以使用 Gson 。
如果担心性能问题,可以使用我写的注解处理器 :) https://github.com/zkw012300/GsonBooster
(后面会迁移到 KSP ,编译速度更快,限制更少)
ZSpirytus
2021 年 11 月 20 日
@ZSpirytus 还有就是,gson 配合 data class 的话,需要有无参构造方法(也就是所有的 primary constructor 字段都需要有默认值),否则 gson 会使用 unsafe 来构造一个实例,会导致一些潜在的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/696198

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX