android - 为什么 Gson @Expose 注释不能正常工作?
问题描述
我有一个模型类,由 gson 填充服务器响应。gson转换器工厂是:
Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())
我的模型中有一个瞬态字段,以防止 gson 进行序列化/反序列化。
data class Testy(
val id:Int = 1,
@Transient var isShowing:Boolean = true
):Serializable
在获得服务器响应并获得转换后的 gson 对象后,isShowing
字段的值是false
我预期的true
(作为初始值)。
解决方法
我使用了以下方法,但没有得到想要的行为:
- 使用
@Expose(serialize = false, deserialize = false)
而不是 @Transient - 正如这里提到的添加
GsonBuilder.excludeFieldsWithModifiers(Modifier.TRANSIENT)
解决方案
推荐阅读
- python - 在决策二元变量中打印结果
- c - 为什么不需要分配内存空间来存储函数返回的指针?
- r - 为什么 `fable::TSLM()` 的预测值略低于 `stats::lm()`?
- python - Python cmp() 函数
- c# - C# MongoDB 计数与查找或匹配
- java - 如何使用分页计算聚合结果 mongo db java 中的总元素?
- javascript - Asp.net 使用 Ajax 上传多个文件
- awk - 删除数据直到字段中的某个字符
- python - 从 Pyspark 列中提取时间字段与从 Pandas 日期时间列中提取时间字段
- python-3.x - 未执行 try-except 结构的递归函数中的返回语句/返回 NoneType