You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GetStream.io查询用户时invisible设为false但仪表盘显示null问题

解决GetStream.io用户invisible字段显示null及Moshi解析错误问题

问题分析

你遇到的JsonDataException是因为GetStream返回的用户数据中invisible字段为null,但你的User模型将该字段定义为非空Boolean类型,导致Moshi解析失败。同时仪表盘显示该字段为null,说明要么请求未正确发送false值,要么GetStream未正确存储该字段。

解决步骤

  • 检查User类的序列化配置
    确保invisible字段在Moshi序列化时被正确处理:

    data class User(
      val id: String,
      val name: String,
      val image: String?,
      // 明确指定JSON字段名,避免命名或大小写不匹配
      @Json(name = "invisible") val invisible: Boolean
    )
    

    避免给字段添加@Json(ignore = true)注解,同时确认自定义JsonAdapter没有忽略该字段。

  • 验证请求Payload的正确性
    开启网络日志,检查发送给GetStream的请求体中是否包含"invisible": false。如果字段缺失,说明序列化过程存在问题,需排查Moshi配置或SDK版本(建议升级到GetStream SDK最新版)。

  • 适配GetStream返回的null值
    由于GetStream可能返回null,可以修改模型字段为可空类型并设置默认值,避免解析错误:

    data class User(
      val id: String,
      val name: String,
      val image: String?,
      val invisible: Boolean? = false
    ) {
      // 业务逻辑中使用非空的计算属性
      val safeInvisible: Boolean get() = invisible ?: false
    }
    

    也可以给Moshi添加自定义适配器,自动将null转换为false。

  • 刷新仪表盘缓存
    GetStream仪表盘可能存在数据缓存,尝试刷新页面或等待数分钟后再次查看,确认数据是否同步。若API请求已正确发送false,则以API返回结果为准。

内容的提问来源于stack exchange,提问作者Xynapz1 Test

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 01:19:59