【问题标题】:Android Kotlin Room Type Converter for JSON Array用于 JSON 数组的 Android Kotlin 房间类型转换器
【发布时间】:2020-03-18 04:13:45
【问题描述】:

我知道还有很多其他关于类型转换器的帖子,但我在这里面临不同的情况。 实际上不同的是我从服务器接收到的 Json 格式,我不能要求他们更新他们的格式,以便我可以解决这个问题。

我知道我只是错过了什么或做错了 这是我的示例 Json 格式

[{"name":"John","age":30,"cars":["Ford","BMW","Fiat"]}]

汽车格式不是对象,而是 JSON 数组,我有点想在 Kotlin 中以 List 格式存储它

@Entity(tableName = "person")
data class Person(

    @PrimaryKey
    var name: String,

    var age: Int,

    @SerializedName("cars")
    @TypeConverters(ListTypeConverter::class)
    var cars: Array<Car>

)

任何帮助将不胜感激。

谢谢大家

【问题讨论】:

  • val cars: List&lt;String&gt; 不工作?
  • @GianhTran 无法正常工作,应为 BEGIN_OBJECT 但在线上为 STRING
  • 请展示你的 POJO 课程
  • 知道了,请看我的回答

标签: android kotlin android-room typeconverter


【解决方案1】:

您的 POJO 不正确,请检查以下一项

   @Entity(tableName = "person")
    data class Person(

        @PrimaryKey
        var name: String,

        var age: Int,

        @SerializedName("cars")
        @TypeConverters(ListTypeConverter::class)
        var cars: Array<String>
    )

cars 是字符串列表,而不是对象

【讨论】:

  • 无法弄清楚如何将此字段保存到数据库中。你可以考虑为它添加一个类型转换器。
  • 抱歉删除了那个 LOC。
  • 我只是在类型转换器上进行了一些调整,它与您的答案相符,谢谢!感谢您的帮助,我会将此作为令牌投赞成票。谢谢
【解决方案2】:

使用

var cars = mutableListOf<String>()

然后在里面添加 JSONArray 数据

【讨论】:

  • 嗨,欢迎来到 StackOverflow。请参阅有关如何贡献的指南。您需要借助记录良好的代码 sn-p 来解释您的答案。
猜你喜欢
  • 2021-07-06
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-07
相关资源
最近更新 更多